取消选中复选框后,需要重新加载搜索项

时间:2018-08-09 13:08:25

标签: javascript ember.js

我的搜索列带有复选框以及文件夹名称。当我单击相应文件夹的复选框时,它将显示其项目。以及当我单击多个复选框时,它将显示其相应的项目。但是,当我取消选中该文件夹时,相应的项不会被删除。因此,当我选中或取消选中复选框时,我需要进行重新加载或刷新,或者需要为每次选中或取消选中该操作清除缓存。

这是我的代码:

Checkbox: Core.component.Checkbox.extend({
    click: function () {
        var ret=null;
        var nav = this.get("controller").get('selectedNavigator');
        ret = this._super.apply(this, arguments);
        var states=null;
        Ember.run.schedule('sync', this, function () {
            Ember.run.schedule('render', this, function () {
                states = this.get('parentView.itemStates');
                var values =  Object.keys(states).filter(function (key) {
                    if(states[key]){

                    return states[key];}
                    else{return;}
                });
                if (values.length === 0) {
                    Core.Action('core:contentHome', {});
                } else {
                    this.set('parentView.model.values',values);
                    nav.publish();
                }
            });
        });
        return ret;
    }
}),

对于发布:

publish: function () {
                    var currentResultSet = this.get('resultSet'),
                        ctl = this.get('controller'),
                        form = ctl.get('formModel'),
                        resultSet,
                        data = form.sleep(2000);
                    if (Object.keys(data).length === 0) {
                        Core.view.Menu.create({
                            anchor: $('*[data-class-name="Core.Tab.Content.Controller.NavigationRefresh"]'),
                            model: [
                                Core.model.Menu.Item.create({
                                    label: "Please select something to search.",
                                    icon: 'dialog_warning'
                                })
                            ]
                        }).show();
                        return;
                    }
                    resultSet = form.send();
                    ctl.set('loadState', 'loading');
                    ctl.set('resultSet', Core.model.BlankResultSet.create({
                        loadState: 'loading',
                        tabContext: Ember.get(form, 'resultSet.tabContext')
                    }));
                    resultSet.fail(function (err) {
                        ctl.set('loadState', 'loaded');
                        console.log(currentResultSet);
                        ctl.set('resultSet', currentResultSet);
                    }).always(function () {
                        ctl.set('loadState', 'loaded');
                    });
                },

0 个答案:

没有答案