我有3个过滤器,它们同时影响数组和嵌套数组,都使用ng-repeat显示。
它显示如下:
BeautifulSoup
过滤器效果很好。 当我尝试在第一个数组中添加一个按钮来禁用过滤器时出现问题。到目前为止它只会禁用ng-repeat的特定项目中的过滤器,而希望效果是它会禁用所有项目的过滤器。
这就是它的样子:
$.validator.addMethod("notEqual", function(value, element, param) {
return this.optional(element) || value == 'HAMBURGER' || value == 'WATER';
}, "This has to be different...");
我怎样设法让这个按钮杀死ng-repeat中所有项目的过滤器,而不仅仅是那个?
答案 0 :(得分:0)
ng-repeat
创建子范围。因此,由于您在子范围级别重新分配范围属性,因此不会修改原始范围。
使用函数,以便在控制器的顶层重新分配属性。随后的摘要周期将更新子范围
<a ng-click="reset()">Show all</a>
控制器:
$scope.reset = function(){
['one','two','three'].forEach(function(prop){
$scope[prop] = {};
})
}
如果您使用的是controllerAs
,则此问题将不存在...或者如果您为所有过滤器使用了一个对象,并且您在视图中更新了该对象的属性