角度自定义筛选器在服务器上不起作用

时间:2015-02-08 11:45:23

标签: javascript angularjs angularjs-ng-repeat ng-repeat angularjs-filter

我正在学习Angular所以我创建了随意的待办事项应用程序。自定义过滤器在托管它时不在本地主机上工作。我没有收到任何错误消息,数据也没有显示。如果我从taskPriority:this数据中删除li数据显示服务器上的哪些内容一切正常,那么当然,过滤不起作用。我将范围(this)传递给过滤器。

<li ng-repeat="task in tasks | taskPriority:this | filter:taskname as ukupno track by $index">
    <input class="edit_task" ng-blur="editTask(task.id, task.task)" ng-model="task.task" value="{{ task.task }}" type="text">
</li>

过滤检查在任务中匹配优先级的数组fSPriorites中是否存在优先级(1,2,3),如果是,则返回这些任务。

angular.module('TaskFilter', []).filter('taskPriority', function() {
    return function(task, scope) {
        var filtered = [];
        angular.forEach(task, function(task) {
            if($.inArray(task.priority, scope.fSPriorites) != -1)
                filtered.push(task);
        });
        return filtered;
    };
});

我该如何调试?

1 个答案:

答案 0 :(得分:1)

我不明白为什么要将范围传递给文件管理员。这不是一个好习惯。请尝试以下代码。

<强> HTML

<li ng-repeat="task in tasks | taskPriority:this.fSPriorites | filter:taskname as ukupno track by $index">
    <input class="edit_task" ng-blur="editTask(task.id, task.task)" ng-model="task.task" value="{{ task.task }}" type="text">
</li>

过滤

angular.module('TaskFilter', []).filter('taskPriority', function() {
    return function(task, fSPriorites) {
        var filtered = [];
        angular.forEach(task, function(task) {
            if($.inArray(task.priority, fSPriorites) != -1)
                filtered.push(task);
        });
        return filtered;
    };
});

希望这可以帮助你。谢谢,