角度 - > ng-repeat过滤的数组变量

时间:2015-11-05 14:08:01

标签: javascript arrays angularjs filter ng-repeat

下面我将链接到我在Plunker中的示例以向您显示我的问题。 在ng-repeat我使用array(filtrowane)来存储来自过滤结果的数据,我还在输入中添加了ng-change,以便在控制台中显示filtrowane.length的值。变量filtrowane在控制器中定义,在输入内容之后它在控制台和视图中显示不同的值,你能告诉我为什么吗?

PS。运行您的Web浏览器控制台,您将看到差异。

example Plunker

2 个答案:

答案 0 :(得分:0)

使用ng-blur代替ng-change

<input type="text" ng-model="search" ng-blur="sprawdzFiltr()">

这是因为ng-change可能在应用过滤器之前执行,因此将使用旧值。

答案 1 :(得分:0)

当您更改值时,首先调用ng-change,然后启动$ digest将更新filtrowane。 如果你使用这样的符号:

item in filtrowane = (tablica | filter:search)

不要在控制器中使用filtrowane。 Html应该是view,所以你不应该在那里声明任何变量,你在模型(js)中使用它。

看这里:http://plnkr.co/edit/QAHlbuZqWX4szglvMP87?p=preview 此代码与您的代码相同,但过滤是在javascript中完成的。有点复杂,但事情更清楚。 (它对大数组来说也更好)

相关问题