Ember.js车把如果,否则声明
Ember.js handlebars if, else statement
我希望有人能解释我在这里做错了什么。我正在使用 Ember.js 带有车把模板,我已经尝试了许多方法来让车把 #if 其他东西对我有用,但它总是返回 if 和 else 的内容。这是我当前使用的代码。
应用.js:
App = Ember.Application.create({
selectedView: "Home",
IsHome: function() {
this.get('selectedView') === 'Home'
}.property('selectedView')
});
索引.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>
在体内:
<script type="text/x-handlebars">
{{#if App.IsHome}}
{{view HomeView}}
{{else}}
{{view editAccountView}}
{{/if}}
</script>
这最终会在页面正文中显示两个视图。任何建议不胜感激,
谢谢史蒂夫
问题的根本原因是车把视图助手 ( {{view MyView}} ) 需要 Ember "类"的路径参数,而不是类的实例。若要创建视图类,请使用 Ember.View
的 extend
方法。Handlebars 视图帮助程序将实例化您的视图类并将其追加到文档中。
有关 Ember 对象模型以及 Ember 的extend
和create
方法之间的差异的更多信息,请参阅这篇文章: http://ember-object-model.notlong.com。
这是您的示例,其中包含一些更改以更正我上面提出的观点。 http://jsfiddle.net/ethan_selzer/kcjzw/217/
问候
伊森
那是因为您正在使用appendTo
手动附加两个视图(homeView
和editAccountView
)。
此外,请避免在应用程序create()
函数中定义视图。因此,请创建您的应用程序:
App = Ember.Application.create({
ready: function() {
App.MainView.create().append();
}
});
其中App.MainView
是您的顶级视图,由以下人员定义:
App.MainView = Ember.View.extend({
templateName: 'main-view',
selectedView: "Home",
isHome: function() {
this.get('selectedView') === 'Home'
},
homeView: Ember.View.extend({
templateName: 'home-view'
}),
editAccountView: Ember.View.extend({
templateName: 'edit-account'
})
});
使用车把模板:
<script type="text/x-handlebars" data-template-name="main-view">
{{#if view.isHome}}
{{view view.homeView}}
{{else}}
{{view view.editAccountView}}
{{/if}}
</script>
相关文章:
- 我需要帮助弄清楚为什么;如果'声明不起作用
- 如果声明防止漫画被放置在预先定义的区域之外
- 如果声明不起作用-任何想法
- 如果用户授权声明
- Ember.js车把如果,否则声明
- 如果我声明 CSS 中的 id 复制到 Javascript 中的 id 会发生什么
- 基金会手风琴如果未在 HTML 中声明,则不加载
- 如果 ||(或)声明
- 如果某个函数没有优化,这是否意味着声明它的所有函数也没有优化
- 如果我用 let 声明它,我是否需要删除 javascript 中的对象
- 如果已经声明了宽度,则在页面加载后更改图像宽度?如果未声明宽度,则宽度将更改,但如果像我一样声明,则不会更改
- 我想将不存在的项目推送到已经声明的对象中,如果它们尚不存在,请使用 lodash 进行角度
- 如果声明为对象的一部分,VideoJS 将不会启动视频
- 如果可能的话,我想写IF ELSE声明DRYer
- Javascript - 如果语句同时检查表达式和定义声明?这是令人困惑的
- Javascript脚本获胜't用我的'否则如果'声明
- 如果声明或/不做什么?Gmail谷歌应用程序脚本
- 简单的“;如果“否则”;声明问题
- 如果display是在CSS上声明的,为什么element.style.display是空的
- 什么's正确:var声明如果未定义