在一个"页面"上显示两种不同类型的两种不同模型的实例的基本设置是什么?
例如,我有两个模型,比如学院和学生.每个都存储在REST服务器中.在某个路线上,我想拉出每个的特定实例并显示每个的"名称"属性.
来自Rails世界,我不太了解EmberJS的模型 - 视图 - 控制器概念.似乎在EmberJS中,每个控制器只能处理一种模型类型.那么这是否意味着必须为每种类型显示一个单独的控制器?
在 ember 中,如果您严格遵循命名约定,那么您的假设是正确的,最佳实践是每个模型每个视图都有一个控制器,但在大多数情况下,需求不同,您也可以偏离约定,并满足您的需求你可以从概念上做这样的事情:
javascript
var App = Ember.Application.create();
App.IndexRoute = Ember.Route.extend({
model: function(){
return Ember.Object.create({post: App.Post.find(1), page: App.Page.find(1)});
}
});
App.Store = DS.Store.extend({
revision: 12,
adapter: 'DS.FixtureAdapter'
});
App.Post = DS.Model.extend({
title: DS.attr('string'),
description: DS.attr('string')
});
App.Page = DS.Model.extend({
title: DS.attr('string'),
text: DS.attr('string')
});
App.Post.FIXTURES = [
{
id: 1,
title: "My super post",
description: "Lorem ipsum dolor sit amet..."
}
];
App.Page.FIXTURES = [
{
id: 1,
title: "My super page",
text: "Lorem ipsum dolor sit amet..."
}
];
Run Code Online (Sandbox Code Playgroud)
模板
<script type="text/x-handlebars">
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="index">
<h2>{{model.post.title}}</h2>
<p>{{model.post.description}}</p>
<hr/>
<h2>{{model.page.title}}</h2>
<p>{{model.post.description}}</p>
</script>
Run Code Online (Sandbox Code Playgroud)
这里有一个工作jsbin展示了这个概念。
希望能帮助到你
| 归档时间: |
|
| 查看次数: |
2541 次 |
| 最近记录: |