将模型分配给 Ember.js 中的深层嵌套视图
Assigning model to deeply nested view in Ember.js
我有一个包含嵌套视图的模板。嵌套视图又具有自己的嵌套视图。这些视图都应该在相同的路由下呈现并使用它们自己的特定模型。浏览模板没有关联的模型。
模板如下所示:
<script type="text/x-handlebars" data-template-name="browse">
{{render "category" category}}
</script>
<script type="text/x-handlebars" data-template-name="category">
{{render "sort" sort}}
</script>
<script type="text/x-handlebars" data-template-name="sort">
<ul>
{{#each m in model}}
<li>{{m.sortType}}</li>
{{/each}}
</ul>
</script>
我在浏览路径下返回我需要的所有模型:
App.BrowseRoute = Ember.Route.extend({
model: function () {
var store = this.store;
return new Em.RSVP.Promise(function (resolve, reject) {
new Em.RSVP.hash({
category: store.find('category'),
sort: store.find('sort')
}).then(function (results) {
resolve({
category: results.category,
sort: results.sort
});
});
});
}
});
我可以通过这种方式将类别模型附加到类别模板,但无法将排序模型附加到排序模板。返回的排序模型数据 是 ,我就是不知道如何将它与排序模板相关联。是因为排序模板嵌套了两层吗?
谢谢!
进入视图上下文'category'不存在变量'sort',
你需要做这样的事情:
(类别视图可以使用变量'category')
<script type="text/x-handlebars" data-template-name="browse">
{{render "category" model}}
</script>
<script type="text/x-handlebars" data-template-name="category">
{{category}}
{{render "sort" sort}}
</script>
<script type="text/x-handlebars" data-template-name="sort">
<br/>{{model}}
<ul>
{{#each m in model}}
<li>{{m.sortType}}</li>
{{/each}}
</ul>
</script>
对不起我的英语
答案在上下文中。
浏览视图的路由检索类别和排序模型,因此它知道它们。这就是为什么我在渲染类别模板时可以传递类别模型。但是,类别模板不知道排序模型,因此无法将其传递给排序模板,但是类别模板可以 引用其父级,因此我能够将排序模型从类别传递到引用父级的排序模板。这是解决问题的代码片段:
<script type="text/x-handlebars" data-template-name="category">
{{render "sort" parentController.sort}}
</script>
我有一个包含嵌套视图的模板。嵌套视图又具有自己的嵌套视图。这些视图都应该在相同的路由下呈现并使用它们自己的特定模型。浏览模板没有关联的模型。
模板如下所示:
<script type="text/x-handlebars" data-template-name="browse">
{{render "category" category}}
</script>
<script type="text/x-handlebars" data-template-name="category">
{{render "sort" sort}}
</script>
<script type="text/x-handlebars" data-template-name="sort">
<ul>
{{#each m in model}}
<li>{{m.sortType}}</li>
{{/each}}
</ul>
</script>
我在浏览路径下返回我需要的所有模型:
App.BrowseRoute = Ember.Route.extend({
model: function () {
var store = this.store;
return new Em.RSVP.Promise(function (resolve, reject) {
new Em.RSVP.hash({
category: store.find('category'),
sort: store.find('sort')
}).then(function (results) {
resolve({
category: results.category,
sort: results.sort
});
});
});
}
});
我可以通过这种方式将类别模型附加到类别模板,但无法将排序模型附加到排序模板。返回的排序模型数据 是 ,我就是不知道如何将它与排序模板相关联。是因为排序模板嵌套了两层吗?
谢谢!
进入视图上下文'category'不存在变量'sort', 你需要做这样的事情:
(类别视图可以使用变量'category')
<script type="text/x-handlebars" data-template-name="browse">
{{render "category" model}}
</script>
<script type="text/x-handlebars" data-template-name="category">
{{category}}
{{render "sort" sort}}
</script>
<script type="text/x-handlebars" data-template-name="sort">
<br/>{{model}}
<ul>
{{#each m in model}}
<li>{{m.sortType}}</li>
{{/each}}
</ul>
</script>
对不起我的英语
答案在上下文中。
浏览视图的路由检索类别和排序模型,因此它知道它们。这就是为什么我在渲染类别模板时可以传递类别模型。但是,类别模板不知道排序模型,因此无法将其传递给排序模板,但是类别模板可以 引用其父级,因此我能够将排序模型从类别传递到引用父级的排序模板。这是解决问题的代码片段:
<script type="text/x-handlebars" data-template-name="category">
{{render "sort" parentController.sort}}
</script>