下面我将链接到我在Plunker中的示例以向您显示我的问题。
在ng-repeat
我使用array(filtrowane)
来存储来自过滤结果的数据,我还在输入中添加了ng-change,以便在控制台中显示filtrowane.length
的值。变量filtrowane在控制器中定义,在输入内容之后它在控制台和视图中显示不同的值,你能告诉我为什么吗?
PS。运行您的Web浏览器控制台,您将看到差异。
答案 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中完成的。有点复杂,但事情更清楚。 (它对大数组来说也更好)