我有一个Array控制器,其属性为“isChecked”(布尔属性)。在我的控制器中,我想获得“检查”的元素集合(我的意思是选中)。我不确定如何访问模型中的控制器属性。
我的控制器如下:
App.ExampleController = Ember.ArrayController.extend({
isChecked: false,
totalElements: function()
{
return this.model.get('length');
}.property('@each'),
selectedElements: function()
{
var content = this.get('content');
console.log(content.filterBy('isChecked'));
return content.filterBy('isChecked');
}.property('isChecked'),
});
我将“isChecked”属性链接到每个帮助器内的复选框,如下所示。
<ul>
{{#each model}}
<li>
{{input type="checkbox" checked=isChecked}}
{{name}}
</li>
{{/each}}
</ul>
我将显示模型中的所有项目,并带有与之关联的复选框。用户可以从中选择几个项目。所以我想要那些物品。
现在我想获取“已检查”的元素列表。作为计算属性或在任何操作下。
谢谢。
答案 0 :(得分:3)
我认为您需要将isChecked
属性移动到ObjectController
,然后使用itemController
属性引用数组控制器中的控制器。
阵列控制器:
App.IndexController = Ember.ArrayController.extend({
itemController: 'color',
totalElements: function() {
return this.get('length');
}.property('[]'),
selectedElements: Ember.computed.filterBy('@this', 'isChecked', true)
});
(@this
表示计算属性将引用项控制器数组。)
项目控制器:
App.ColorController = Ember.ObjectController.extend({
isChecked: false
});
http://emberjs.jsbin.com/tazojejuwi/1/edit
希望有所帮助。