Angular 自定义过滤器在服务器上不起作用

Angular custom filter doesnt work on server

我正在学习 Angular 所以我创建了休闲待办应用程序。自定义过滤器在本地主机上工作,而在托管时不工作。我没有收到任何错误消息,也没有显示数据。如果我从 li 中删除 taskPriority:this,数据显示这意味着在服务器上一切正常,但是当然,过滤不起作用。我正在将范围 (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) 与任务中的优先级匹配,如果是,则它 returns 这些任务。

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;
    };
});

我该如何调试它?

我不明白你为什么要将作用域传递给 fileter。这不是一个好的做法。试试下面的代码。

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;
    };
});

希望这对您有所帮助 you.Thanks,