0

我认为这应该是一个非常容易解决的问题,我只是想不通。我的 ApplicationRoute 中有这个模型:

App.ApplicationRoute = Ember.Route.extend({
  model: function() {
    return {
      sideNav: data.side, 
      breadcrumbs: Util.breadcrumbs()
    }
  }
});

申请模板:

<script type="text/x-handlebars" data-template-name="application"> 

    {{outlet}}

</script>

概览模板:

<script type="text/x-handlebars" data-template-name="overview">

    {{partial side}}

</script>

_side部分:

<script type="text/x-handlebars" id="_side">

    {{#each model.side}}

        <i {{bindAttr class="iconClass"}}></i><p>{{label}}</p>

    {{/each}}

</script> 

当我加载我的概览路线时,那里的东西会加载,但是应用程序模型并没有像我希望的那样应用于侧面部分......可能有更好的方法来做到这一点。谢谢!

4

1 回答 1

1

看起来你有两个问题:

  1. 您绑定到side而不是sideNav在您的部分内部。
  2. 您正在尝试访问模板ApplicationRoute内部的overview模型(可能有自己的路由和控制器)

部分不会改变上下文,因此它们不会自行增加任何复杂性。例如,如果我们将自己限制在application模板中,则以下内容将起作用:

App.ApplicationRoute = Ember.Route.extend({
    model: function() {
        return {
            foo: 'bar'   
        };
    }
});

<script type="text/x-handlebars" data-template-name="application">
    {{partial partial}}
    {{outlet}}
</script>

<script type="text/x-handlebars" data-template-name="_partial">
    {{foo}}
</script>

但是,如果您想在application嵌套路由中获取模型,则需要请求它。例如,在(默认)index路由中,您可以添加以下内容:

App.IndexRoute = Ember.Route.extend({
    model: function() {
        return this.modelFor('application');   
    }
});

<script type="text/x-handlebars" data-template-name="index">
    {{partial partial}}
</script>

您可以在这个 jsfiddle 中看到这两个示例

于 2013-08-17T01:17:26.987 回答