0

用例是我试图使用 Ember.Select 过滤模型,每当用户单击按钮时,模型都会根据“Designation”属性进行过滤。

这是我的 Ember.Select:

{{view Ember.Select
       contentBinding="designations"
       optionValuePath="content.id"
       optionLabelPath="content.designation"
       selectionBinding="roles.selectedDesignation"}}
<button {{action 'filter'}}>Filter</button>

这就是我在 App.js 中所做的,

App.TwodController = Ember.Controller.extend({
    filteredContent : Ember.computed.oneWay("content"),
    selectedDesignation : null,
    designations : [{
        designation : "Design",
        id : 1
    }, {
        designation : "Writer",
        id : 2
    }],
    actions : {
        filter : function() {
            var designation = this.get('roles.selectedDesignation');
            var filtered = this.get('content').filterProperty('designation', designation);
            this.set("filteredContent", filtered);
        }
    }
});

这是完整的 JSBin,http://jsbin.com/iPUxuJU/2/edit

我可能在这里缺少什么?

4

1 回答 1

1

您在选择绑定中遗漏了一些东西

{{view Ember.Select
   contentBinding="designations"
   optionValuePath="content.id"
   optionLabelPath="content.designation"
   selectionBinding="selectedDesignation"}}
<button {{action 'filter'}}>Filter</button>

在控制器逻辑中:

App.TwodController = Ember.Controller.extend({
filteredContent : Ember.computed.oneWay("content"),
selectedDesignation : null,
designations : [{
    designation : "Design",
    id : 1
}, {
    designation : "Writer",
    id : 2
}],
actions : {
    filter : function() {
        var designation = this.get('selectedDesignation.designation');
        var filtered = this.get('content').filterProperty('designation', designation);
        this.set("filteredContent", filtered);
    }
}

});

这是工作的jsbin

于 2013-09-16T05:20:31.390 回答