我有一个具有嵌套视图的模板。嵌套视图又有自己的嵌套视图。视图应该在相同的路径下呈现,并使用自己的特定模型。浏览模板没有关联的模型。
模板如下所示:
<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
});
});
});
}
});
我没有问题以这种方式将类别模型附加到类别模板,但是我无法将排序模型附加到排序模板。返回排序模型数据 ,我无法弄清楚如何将其与排序模板相关联。是因为排序模板嵌套了两层深度吗?
谢谢!
答案 0 :(得分:0)
进入视图类别&#39;的上下文不存在变量&#39; sort&#39;, 你需要做这样的事情:
(在类别视图中,您可以使用变量&#39;类别&#39;)
<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>
&#13;
抱歉我的英文
答案 1 :(得分:0)
答案是在上下文中。
浏览视图的路径检索类别和排序模型,因此它们都知道它们。这就是我在渲染类别模板时可以传递类别模型的原因。但是,类别模板不了解排序模型,因此无法将其传递给排序模板,但类别模板可以引用其父级,因此我能够将排序模型从类别传递到引用父类的排序模板。以下是解决问题的代码:
<script type="text/x-handlebars" data-template-name="category">
{{render "sort" parentController.sort}}
</script>