angularJS问题集结

1、用ng-repeat循环输出遇到很奇怪的问题 :

Error: [ngRepeat:dupes] http://errors.angularjs.org/1.4.6/ngRepeat/dupes?p0=x%20in%20result&p1=stri…83%EF%BC%8C%E7%BB%93%E6%9E%9C%E6%98%AF%EF%BC%9A%E4%BD%A0%E8%BE%93%E4%BA%86

at angular.min.js:6

at angular.min.js:279

at Object.fn (angular.min.js:129)

at n.$digest (angular.min.js:130)

at n.$apply (angular.min.js:133)

at HTMLInputElement.<anonymous> (angular.min.js:253)

at HTMLInputElement.c (angular.min.js:35)

意思是指ng-repeat不能有重复数据:解决办法:ng-repeat="keys in newlist track by $index",加track by $index,也可以 trace by 任何一个普通的值,只要能唯一性标识数组中的每一项即可

2、数据双向绑定失效,就是明明在controller里面给$scope.×××赋值了,在页面上xxx愣是显示不了,但是点击一下输入框或是form表单的提交按钮,xxx数据信息就显示了。

解决办法:添加 $scope.$apply();

$scope.$apply(function(){ 

  $scope.xxx = “你赋的值”;

});

一般情况下是不需要我们手动添加这一句代码的,因为angularJS本身在需要的时候调用,以达到我们所看到的数据双向绑定的效果。

但是你若是引用一个外部插件或者其他,在回调函数里创建或更新$scope.xxx的数据,因为外部插件本身已经脱离了angularJS的作用域,所以数据双向绑定在这里没有效果,只能手动添加$scope.$apply()来通知页面获取数据。

参考网址:http://www.bdqn.cn/news/201409/15295.shtml

 
上一篇:精读JavaScript模式(四),数组,对象与函数的几种创建方式


下一篇:JavaScript 对象的几种创建方法