0

我有一个 Ember.Select,它根据某些角色过滤模型。目前,当应用程序启动模型的全部内容时显示,但我只想在应用过滤器时显示模型。我不知道我将如何做到这一点。

这是我在问题中的控制器,

App.TwodController = Ember.ArrayController.extend({
    //filteredContent : null,
    sortProperties: ['firstname'],
    sortAscending: true,
    selectedExperience : null,
    experience : [{
        exp : "1"
    }, {
        exp : "2"
    }, {
        exp : "3"
    }, {
        exp : "4"
    }, {
        exp : "5"
    }],
    selectedDesignation : null,
    filterDesignation : function() {
        var designation = this.get('selectedDesignation.designation');
        var filtered = this.get('content').filterProperty('designation', designation);
        this.set("filteredContent", filtered);
    }.observes('selectedDesignation'),
    designations : [{
        designation : "Design",
        id : 1
    }, {
        designation : "Writer",
        id : 2
    }, {
        designation : "Script",
        id : 3
    }, {
        designation : "Storyboard",
        id : 4
    }, {
        designation : "Workbook",
        id : 5
    }],
    actions : {
        filterExperience : function() {
            var experience = this.get('selectedExperience.exp');
            var filtered = this.get('content').filterProperty('experience', experience);
            this.set("filteredContent", filtered);
        },
        refresh : function() {
            var refresh = this.get('content');
            this.set("filteredContent", refresh);
        }
    },
    filteredContent : function() {
        var searchText = this.get('searchText'), regex = new RegExp(searchText, 'i');

        return this.get('model').filter(function(item) {
            var fullname = item.firstname + item.lastname;
            return regex.test(fullname);
        });
    }.property('searchText', 'model')

});

此外,我遇到的另一个问题是我无法按升序排序。我需要对代码进行哪些更改才能达到预期的结果?

如果有人感兴趣,这里是完整的JSBin 。

4

1 回答 1

1

在您的App.TwodController包括:

init: function() {
  this.set('filteredContent', []);
},

并根据Ember.SortableMixin文档filterDesignation更改。this.get('content')this.get('arrangedContent')

filterDesignation : function() {
    var designation = this.get('selectedDesignation.designation');
    var filtered = this.get('arrangedContent').filterProperty('designation', designation);
    this.set("filteredContent", filtered);
}.observes('selectedDesignation'),
于 2013-09-24T19:29:56.123 回答