如何显示从Controller更新的ember.js模型/ RecordArray?

时间:2013-08-16 04:31:30

标签: ember.js

我正在控制器内部生成RecordArray,模型的子集,但我不知道如何在html中使用把手{{#each}}显示它。

以下答案还可能会显示如何在同一页面的同一个控制器中的ember.js 2 /多个模型中显示。

2 个答案:

答案 0 :(得分:1)

因此,让我们说ItemsController有一个项目列表,但您只想列出模板中的特殊项目。添加一个过滤项目的计算属性:

App.ItemsController = Ember.ArrayController.extend({
  specialItems: function() {
    var items = this.get('content');
    return items.filterProperty('isSpecial')
  }.property('content.@each.isSpecial');
});

然后在模板中引用该属性:

{{#each item in specialItems}}
  {{item.title}}
  ... 
{{/each}}

答案 1 :(得分:0)

首先需要使用包含RecordArray的控制器设置变量。然后你可以在那个变量上调用each

App.YourController = Ember.ArrayController.extend({
  ...
  doSearch: function(){
      var theRecordArray = App.Model.find({theAttribute: blah});
      this.set('variableOfYourChoice', theRecordArray);
  }
});

在html中:

{{#each variableOfYourChoice}}
  <li>{{theAttribute}}</li>
{{/each}}

看到它在this jsbin中运行,它将RecordArray显示为搜索结果。