加载计算属性以填充Ember / Handlebars中的导航

时间:2014-09-21 07:16:26

标签: ember.js ember-data handlebars.js

我的代码的目的是拥有一组导航位置,其中包含' n'名单。我想在导航中为用户显示#。这是一个例子: 搜索(3) 合格(2) 提案(6)

导航中的我的车把模板如下:

<li>{{#link-to "qualifieditems"}}
      Qualified ({{controllers.qualifieditems.count}})
    {{/link-to}}
</li>

我的控制器看起来像这样:

 App.QualifiedItemsController = Ember.ArrayController.extend({
     count: function() {
           return this.get('model.length');
     }.property('@each')
)};

当我点击相关的导航栏时,ember-data会正确显示加载和计数。

从路由器获取数据:

App.QualifiedItemsRoute = Ember.Route.extend({
    model: function(){
        return this.store.find('qualifieditem');
    }

});

导航控制器:

App.NavController = Ember.Route.extend({
   needs: 'qualifieditems'
});

导航的路线:

App.NavRoute = Ember.Route.extend({
    model: function () {
        return this.store.find('qualifieditem');
    }
});

所以问题仍然存在......当导航首次加载时,如何让{{count}}更新所有导航项?

提前感谢您的帮助!如果发布任何其他代码会有所帮助,请告诉我。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,请尝试在模型加载

时观察您的计算属性
count: function() {
    return this.get('model.length');
}.property('@each', '@each.didLoad')

当模型最初完成加载时,didLoad标志将更改为true。