我有一个返回true或false的自定义函数
控制器功能:
this.isStoreEquipment = function(equipment){
var returnVal = false
if (Array.isArray(equipment)){
equipment.forEach(function(piece, index, array){
if (Config.myEquipment().indexOf(piece)!= -1){
returnVal = true
return
}
});
}
return returnVal
}
并在我的表格中
<tr ng-cloak id="{{$index}}"
ng-repeat-start="equipment in currentController.storeEquipment | orderBy: '-lastService ' | filter: currentController.isStoreEquipment(equipment.storeNum))>"
<td>{{equipment.lastService | date:'MM/dd/yyyy'}}</td>
<td>{{equipment.type}}</td>
<td>{{equipment.name}}</td>
<td>{{equipment.storeNum}}</td>
</tr>
现在我已经验证通过在我的表中添加<td>currentController.isStoreEquipment(equipment.storeNum)
并且返回true和false,它确实返回true,但是我没有得到任何结果,过滤器应用于我的ng-repeat表达。
答案 0 :(得分:2)
你应该注册这样的过滤器:
angular.module('test').filter('inStore', function() {
return function(input) {
....
}
});
它们通常是更通用的功能,可用于多个控制器。也就是说,input
是您应用过滤器的值。在这种情况下,它是一个数组,过滤器应该返回一个只有'good'项的新数组。