如果Ember.js把手,否则声明

SBi*_*ell 1 javascript handlebars.js ember.js

我希望有人可以解释我在这里做错了什么.我正在使用带有把手模板的Ember.js,我已经尝试了很多方法来获取把手#if else为我工作,但它总是返回if和else的内容..这是我正在使用的代码.

App.js:

App = Ember.Application.create({
  selectedView: "Home",
  IsHome: function() {
    this.get('selectedView') === 'Home'
}.property('selectedView')

});
Run Code Online (Sandbox Code Playgroud)

index.html头包含:

<script type="text/x-handlebars" data-template-name="home-view">
      Hello, This is the home view.
</script>
<script type="text/x-handlebars" data-template-name="edit-account">
      Hello, This is the account edit view.
</script>
Run Code Online (Sandbox Code Playgroud)

在身体里:

<script type="text/x-handlebars">
{{#if App.IsHome}}
   {{view HomeView}}
{{else}}
  {{view editAccountView}}
{{/if}}
</script>
Run Code Online (Sandbox Code Playgroud)

这最终会在页面正文中显示两个视图.任何建议表示赞赏,

谢谢Steve

Eth*_*zer 5

您的问题的根本原因是Handlebars视图助手({{view MyView}})期望Ember"类"的路径参数,而不是类的实例.要创建视图类,请使用extend方法Ember.View.Handlebars视图助手将实例化您的视图类并将其附加到文档中.

有关Ember对象模型以及Ember extendcreate方法之间差异的更多信息,请参阅此文章:http: //ember-object-model.notlong.com.

以下是您的示例,其中进行了一些更改以纠正我上面提到的观点.http://jsfiddle.net/ethan_selzer/kcjzw/217/

问候,

阮经天