0

我有一个具有属性“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>

我将显示模型中的所有项目,并带有一个与之关联的复选框。用户可以从中选择几个项目。所以我想要那些东西。

在此处输入图像描述

现在我想获取“检查”的元素列表。作为计算属性或在任何操作下。

谢谢你。

4

1 回答 1

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

希望有帮助。

于 2015-03-24T10:15:34.403 回答