【问题标题】:How do I pass model information to this each statement in a nested template?如何将模型信息传递给嵌套模板中的每个语句?
【发布时间】:2013-04-24 19:15:58
【问题描述】:

我有一个索引路径,我需要根据模型列表在一个插座中填充一个菜单。但是我无法在每个语句中表示模型。

这是类别模型

App.Category = DS.Model.extend({
    title: DS.attr('string'),
    parent: DS.belongsTo('App.Category')
})

这是我渲染它的 indexRoute

App.IndexRoute = Em.Route.extend({
renderTemplate: function(){
    this.render('index')
    this.render('categoryMenu',
        {
            outlet: 'sidebar',
            into: 'index',
            model: function() {
                return App.Category.find()
            },
            controller: App.CategoriesController
        })
    this.render('badgesList',{
        outlet: 'badgesList',
        into: 'index'
    })
}
})

索引模板:

<script type="text/x-handlebars" data-template-name="index">
    <div class="span3">
        {{outlet sidebar}}
    </div>
    <div class="span8">
       {{outlet badgesList}}
    </div>
</script>

嵌套类别模板

<script type="text/x-handlebars" data-template-name="categoryMenu">
    <ul>
        {{#each model}}
            {{title}}
        {{/each}}
    </ul>
</script>

我尝试将 each 语句更改为几个不同的内容,例如 controlleritem in model,但没有显示任何内容。

感谢您的帮助!

【问题讨论】:

  • 我被你的原始代码 sn-p 误导了。当您将model 属性放在render 选项哈希中时,我真的很兴奋,因为这将解决我遇到的问题。但事实证明,该选项没有任何作用,您需要使用 controllerFor 路由助手在调用渲染之前设置控制器的模型。然而,很好的问题。

标签: ember.js


【解决方案1】:

首先让自己成为CategoriesController

App.CategoriesController = Ember.ArrayController.extend({
    content: function () {
        return App.Category.find()
    }.property()
});

将您的模板重命名为 categories

<script type="text/x-handlebars" data-template-name="categories">
    <ul>
        {{#each model}}
                {{title}}
        {{/each}}
    </ul>
</script>

在您的 index 模板中将 {{outlet}} 替换为 {{render 'categoies'}}

<script type="text/x-handlebars" data-template-name="index">
    <div class="span3">
        {{render 'categoies'}}
    </div>
    <div class="span8">
           {{outlet badgesList}}
    </div>
</script>

最后删除调用渲染categoryMenu

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-02
    • 2022-01-11
    • 1970-01-01
    • 2012-07-21
    • 2016-11-17
    • 2011-09-16
    相关资源
    最近更新 更多