繁体   English   中英

使用ember和ember-cli编辑车把模板

[英]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}}

实时示例http://emberjs.jsbin.com/mezoxiqavi/1/edit

车把没有您发布的形式的平等帮助器。 (请参阅此列表以获取所有内置助手的列表。)

相反,使代码工作所需要做的是在控制器上创建一个属性:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM