我有两个ng-repeat和一个自定义过滤器的问题。这是我的代码:
HTML
<ul class="dropdown-menu">
<li ng-repeat="L in prontoSoccorsoLista"><a href="" ng-click="azione = L.prontoSoccorso; setLabel(L.prontoSoccorso)">{{L.prontoSoccorso}}</a></li>
</ul>
<div class="prontosoccorso" ng-repeat="PS in prontoSoccorso | myFilter:azione" >
data to show not important
</div>
JS
.filter('myFilter', function () {
return function (items, search) {
var result = [];
console.log(search);
angular.forEach(items, function(friendData){
if(friendData.prontoSoccorso == search) {
result.push(friendData);
} else if(search == undefined) {
result.push(friendData);
}
});
return result;
}
});
我必须设置azione的值。在列表上的whitout ngrepeat我可以成功设置“azione”并在过滤器中捕获正确的“搜索”值。这是一个例子:
<ul class="dropdown-menu">
<li><a href="" ng-click="azione = 1; setLabel('ps1')">{{ps1}}</a></li>
<li><a href="" ng-click="azione = 2; setLabel('ps2')">{{ps2}}</a></li>
<li><a href="" ng-click="azione = 3; setLabel('ps3')">{{ps3}}</a></li>
</ul>
当我插入ngrepeat并尝试设置“azione”时,在过滤器中它将“search”的值返回为“undefined”。我该如何解决?
答案 0 :(得分:1)
myFilter:azione指的是$ scope.azione,而ng-click不是
尝试在控制器中创建一个功能:
$scope.setAzione = function (L) {
if (L.prontoSoccorso) {
$scope.azione = object.prontoSoccorso;
}
}
然后致电
ng-click="setAzione(L)"