我想在块中包装一些文本。无法弄清楚该怎么做。
JS:
Handlebars.registerHelper('mywrap', function (options) {
return '<p class="TEST" >' + options.fn(this) + '</p>';
});
模板:
{{#mywrap}}
This text must be wrapped
{{/mywrap}}
最终的HTML应该是这样的:
<p class="TEST">This text must be wrapped</p>
Ember v1.0.0-pre4, 把手1.0.rc.2, Jquery 1.9.0
答案 0 :(得分:3)
有很多方法可以在一个块中包装文本,这取决于你的用例。 我假设由于某种原因,字面上写HTML不是你想要的。
首先,您只需返回Handlebars SafeString,但是如果要包装用户提供的内容,则会出现安全问题。
Ember.Handlebars.registerHelper('mywrap', function (options) {
return new Handlebars.SafeString('<p class="TEST" >' + options.fn(this) + '</p>';)
});
其次,您可以将其包装在视图中
{{#view classNames="TEST" tagName="p"}}
This text must be wrapped
{{/view}}
第三,您可以创建一个创建视图的把手帮助器。
Ember.Handlebars.registerHelper('mywrap', function (options) {
var view = Ember.View.extend({tagName:"p",classNames:"TEST"})
return Ember.Handlebars.helper.view.call(this, view, options)
});
警告,我实际上没有检查过代码,因此可能存在拼写错误