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,
我正在学习 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,