我正在学习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;
};
});
我该如何调试?
答案 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;
};
});
希望这可以帮助你。谢谢,