我想将一些文本包装在 block 中。不知道该怎么做。
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, Handlebars 1.0.rc.2, Jquery 1.9.0
最佳答案
有很多方法可以将文本包装在 block 中,这实际上取决于您的用例。 我假设出于某种原因,从字面上编写 HTML 并不是您想要的。
首先,您可以只返回 Handlebars SafeString,但是如果您要包装用户提供的内容,这会带来安全问题。
Ember.Handlebars.registerHelper('mywrap', function (options) {
return new Handlebars.SafeString('<p class="TEST" >' + options.fn(this) + '</p>';)
});
其次,您可以将其包装在 View 中
{{#view classNames="TEST" tagName="p"}}
This text must be wrapped
{{/view}}
第三,您可以创建一个用于创建 View 的 Handlebars 助手。
Ember.Handlebars.registerHelper('mywrap', function (options) {
var view = Ember.View.extend({tagName:"p",classNames:"TEST"})
return Ember.Handlebars.helper.view.call(this, view, options)
});
请注意,我还没有真正检查过代码,因此可能存在拼写错误
关于ember.js - 如何使用 Ember js 和 Handlebars js 将文本换行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14595364/