win*_*yer 3 handlebars.js ember.js
我想定义一个块助手,将块中的文本放入<a href=""></a>标签中。我使用了http://handlebarsjs.com/block_helpers.html中的一个示例作为开始,但我的代码不起作用。我必须改变什么才能<a href="http://www.example.com">test</a>作为这个块助手的输出?
应用程序.js
App = Ember.Application.create();
Handlebars.registerHelper('link', function(options) {
var result = '<a href="http://www.example.com">' + options.fn(this) + '</a>';
return Handlebars.SafeString(result);
});
Run Code Online (Sandbox Code Playgroud)
索引.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>Example</title>
</head>
<body>
<script type="text/x-handlebars">
<p>
{{#link}}
test
{{/link}}
</p>
</script>
</body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="js/handlebars.js"></script>
<script type="text/javascript" src="js/ember.js"></script>
<script type="text/javascript" src="js/app.js"></script>
</html>
Run Code Online (Sandbox Code Playgroud)
只是一些细节(已编辑):
你只需要创建一个新的实例的Handlebars.SafeString返回之前。请在此处查看@muistooshort 的jsfiddle,并附上您要实现的工作示例。
块助手稍微复杂一些,在需要调用具有不同上下文的模板部分时使用。如果不是您的情况,您可以使用常规 Handlebars helpers的语法。(我会将以下代码留在这里以供将来参考,尽管在这种情况下不相关)
在app.js 中声明 helper :
Ember.Handlebars.registerHelper('link', function(value) {
var result = '<a href="http://www.example.com">' + value + '</a>';
return new Handlebars.SafeString(result);
});
Run Code Online (Sandbox Code Playgroud)
在index.html 中,将您当前的模板替换为:
<script type="text/x-handlebars">
<p>
{{link test}}
</p>
</script>
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
3742 次 |
| 最近记录: |