[英]Editing Handlebars templates with ember and ember-cli
嗨,我的问题可能很简单,因为我是ember和ember-cli的新手,据我了解,您只需编辑包含html,IE的应用程序HBS模板。 应用程序/模板/ settings.hbs
但是我的问题是,当我编辑其中一个文件并重新启动整个堆栈时,没有反映出任何更改-此外,我基本上只是试图通过输入if条件来查找已创建的堆栈,以对控制器名称进行一些小的更改并显示内容,如果它符合我的寻找,
例如
{{#if controller.name == "settings"}}
// diff lis
{else}
// normal lis
{#endif}
在这里最重要的是,我对HBS模板所做的任何更改似乎都没有实时反映出来,知道为什么吗?
除了@Oren答案之外,如果您使用的是ember 1.10,则可以利用handlebars子表达式并编写自己的eq
助手,该助手可以在更多情况下使用。 例如:
Ember.Handlebars.registerBoundHelper('eq', function(left, right) {
return left === right;
});
然后在您的模板中
{{#if (eq name "settings") }}
// diff lis
{{else}}
// normal lis
{{/if}}
// ...
{{#if (eq something otherstuff) }}
// show this
{{else}}
// show that
{{/if}}
车把没有您发布的形式的平等帮助器。 (请参阅此列表以获取所有内置助手的列表。)
相反,使代码工作所需要做的是在控制器上创建一个属性:
IsNameSettings: function(){
return this.get('model.name') === 'settings';
}.property('model.name');
并更改模板以使用此属性(请注意,您还拥有{{/endif}}
,需要将其更改为{{/if}}
[请参见上面的链接]):
{{#if controller.IsNameSettings}}
// diff lis
{else}
// normal lis
{/if}
在等待实时重新加载时,查看是否在按照我描述的那样将车把模板更改为有效语法后,是否在页面实时更新中显示结果。 确认保存这些更改之后,您会看到ember-cli
输出指示构建成功。 根据以下内容检查终端中的输出:
version: 0.1.12
Livereload server on port 35729
Serving on http://0.0.0.0:4200/
Build successful - 8891ms.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.