我有一个js类来处理一些逻辑,并试图在角度使用它,所以它可以自动更新当值更改不起作用时,只有当我使用角度函数工作时,引用是可以的,但我确定需要别的东西当数组外部变化时,告诉angular我需要它来监听.谢谢!
//create class exposed to window
(function(w){
var Foo=function(){
this.add=function(){
Foo.arr.push('js-'+(Math.random() * 100));
}
}
Foo.arr=['a','b','c'];
w.Foo=Foo;
})(window);
//instantiate one class , used in button
var foo=new Foo;
//angular app
var App= angular.module('App',[]);
//add array reference using "Value"
App.value('arr',Foo.arr);
//angular controller
App.controller('ClientController', ['$scope','arr', function($scope,arr) {
$scope.markers = arr;
$scope.add=function(){
arr.push('ng-'+(Math.random() * 100));
};
}]);
Run Code Online (Sandbox Code Playgroud)
这是html代码
<div ng-app="App" >
<div ng-controller="ClientController">
<div ng-repeat='marker in markers'>
<p> {{marker}}</p>
</div>
<button ng-click='add()'>add NG</button>
<button onclick="foo.add()">add js</button>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
问题: 当我使用"添加JS"按钮更改数组时,它不会自动更新.但是当我按下"添加"按钮时,阵列会立即显示和更新.