嘿所以我的问题可能很简单,因为我是ember和ember-cli的新手,根据我的理解你只需编辑一个包含html,IE的应用程序HBS模板。 应用程序/模板/ settings.hbs
然而我的问题是,当我编辑其中一个文件并重新启动整个堆栈时,没有反映出任何变化 - 此外我基本上只是尝试通过输入if条件来创建对已创建堆栈的一些小改动找到控制器名称并显示内容(如果它与我正在寻找的内容相匹配)
例如
{{#if controller.name == "settings"}}
// diff lis
{else}
// normal lis
{#endif}
最重要的是,我对HBS模板所做的任何改变似乎都没有现场反映,任何想法为什么?
答案 0 :(得分:1)
除了@Oren的回答,如果你使用的是ember 1.10,你可以利用把手子表达式并编写自己的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}}
答案 1 :(得分:0)
Handlebars在您发布的表单中没有相等帮助器。 (有关所有内置帮助程序的列表,请参阅this list。)
相反,您需要做的就是让代码工作是在控制器上创建一个属性:
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.