【备忘录】过滤已选项

angular.module('myapp').filter('checkRule', function ($filter) {
    /**
     * inputArray {Array} monitorItems      总的监控项数组
     * filter {Array} data.params           已经选中的监控项数组 item值判断
     * current {String} rule.item           当前选中的监控项的name
     * @return {Array} arr
     */
    return function (inputArray, filter, current) {
        if (!inputArray) {
            return [];
        }
        var arr = [];
        angular.forEach(inputArray, function (input) {
            var flag = true;
            for (var i = 0; i < filter.length; i++) {
                if (filter[i].item == input.name && current != input.name) {
                    flag = false;
                }
            };
            flag && arr.push(input);
        });
        return arr;
    }
});

  选过的监控项,不再在下一个select中显示。

  monitorItems : [{"name": "x", ...}, {"name": "y"}]

  data.params : [{item: "x", ......}, {item: "y"}]

  filter: "x"

posted @ 2015-12-09 10:11  xiaoroad  阅读(130)  评论(0)    收藏  举报