具有计算属性的Emberjs {{each}}不起作用

时间:2014-02-14 22:15:38

标签: javascript ember.js handlebars.js

我有一个Ember.js ArrayController,我正在尝试创建一个生成访问总和的计算属性,但是我被卡住了:

带排序数组的控制器

App.SpreadsheetController = Ember.ArrayController.extend({
   sortProperties: ['visits'],
   sortAscending: false, 

   allVisits: function() {
      var visits = this.get('content.@each.visits').toArray(); 
      visits.forEach(function(val) {
         // sum all visits
      );
      return visits;
   }.property('content.@each.visits'),

   actions: {
      orderAsc: function (){
        this.set('sortAscending', true);
      },

      orderDesc: function (){
         this.set('sortAscending', false);
      },
} 

});

的index.html

Without each: {{allVisits}} //show
    {{#each}}
      {{allVisits}} //don't show
    {{/each}}

为什么不在每个访问中显示所有访问?任何解决方案?

2 个答案:

答案 0 :(得分:1)

必须是

{{#each allVisits}}
      {{this}}
{{/each}}

因为{{each}}循环中的本地上下文是正在迭代的当前元素,它不具有allVisits属性

答案 1 :(得分:0)

我找到了适合我的解决方案

{{#each}}
      {{controller.allVisits}}
{{/each}}

谢谢你的方式