如何在 Marionette templateHelper / templateContext 中传递换行符?
How to pass a line break in Marionette templateHelper / templateContext?
对于给定的视图,在 Marionette 2.4.4 中:
var view = Marionette.LayoutView.extend({
template: Handlebars.compile('{{body}}'),
templateHelpers: function(){
return {
body: "Line one. Line Two.",
};
}
});
view = new view();
MasterView.showChildView('master_content', view);
我需要向 "body" 属性 添加什么才能使 "Line one." 在呈现后出现在 "Line Two." 上方的一行?
注意:templateHelpers 在 Marionette 的新版本中变成了 templateContext。
实验:<br>
不起作用。它只是显示为明文。
<br>
无效的原因是 Handlebars,而不是 Marionette。根据 this stack overflow question,要使 Handlebars 不转义 html 表达式,请使用 {{{}}}
三重大括号,而不是 {{}}
。因此,以下代码有效:
var view = Marionette.LayoutView.extend({
template: Handlebars.compile('{{body}}'),
templateHelpers: function(){
return {
body: "Line one. {{{<br>}}} Line Two.",
};
}
});
view = new view();
MasterView.showChildView('master_content', view);
对于给定的视图,在 Marionette 2.4.4 中:
var view = Marionette.LayoutView.extend({
template: Handlebars.compile('{{body}}'),
templateHelpers: function(){
return {
body: "Line one. Line Two.",
};
}
});
view = new view();
MasterView.showChildView('master_content', view);
我需要向 "body" 属性 添加什么才能使 "Line one." 在呈现后出现在 "Line Two." 上方的一行?
注意:templateHelpers 在 Marionette 的新版本中变成了 templateContext。
实验:<br>
不起作用。它只是显示为明文。
<br>
无效的原因是 Handlebars,而不是 Marionette。根据 this stack overflow question,要使 Handlebars 不转义 html 表达式,请使用 {{{}}}
三重大括号,而不是 {{}}
。因此,以下代码有效:
var view = Marionette.LayoutView.extend({
template: Handlebars.compile('{{body}}'),
templateHelpers: function(){
return {
body: "Line one. {{{<br>}}} Line Two.",
};
}
});
view = new view();
MasterView.showChildView('master_content', view);