【发布时间】:2016-01-03 04:33:03
【问题描述】:
我在application.hbs 有一个名为“sidebar”的插座。这个插座在某些路由中使用一个名为“sidebar-info”的组件来呈现附加信息。在这些路线中,我使用renderTemplate 在适当的插座中渲染内容。例如:
renderTemplate: function(controller, model) {
this.render('components/sidebar-info', {
into: 'application',
outlet: 'sidebar',
model: Ember.Object.create({
title: this.get('i18n').t('signup'),
detailsComponent: 'signup-help'
})
});
this.render('sign-up');
},
这是components/sidebar-info模板:
<div class="title">
<h1>{{model.title}}</h1>
</div>
{{#if model.detailsComponent}}
<div class="details">
{{component model.detailsComponent}}
</div>
{{/if}}
在渲染路由模板(不是组件)时,路由定义的模型会被发送到组件的模型覆盖。如果原始模型是这样的:
original_model = {
field_1: 1,
field_2: 2
}
然后使用 model.field_1 在模板上下文中变得未定义,而 model.title 可用。
为什么要覆盖模型?
我使用的是 Ember 2.2.0
【问题讨论】:
标签: ember.js