刚开始使用 AngularJS 并试图找出当控制器中的变量发生变化时监听事件的最佳实践。我让它工作的唯一方法是使用发射,如下所示。
例如:
var app = angular.module("sampleApp", [])
app.controller("AppCtrl", function($scope){
$scope.elements = [
{
name: "test"
}
]
$scope.addElement = function() {
$scope.elements.push({
name: "test" + $scope.elements.length
})
$scope.$emit('elementsChanged', $scope.elements);
}
})
app.directive('render', function() {
var renderFunc = function() {
console.log("model updated");
}
return {
restrict: 'E',
link: function(scope, element, attrs, ngModel) {
scope.$on('elementsChanged', function(event, args) {
renderFunc();
})
}
}
})
这似乎有点不稳定,我觉得我正在反对角度的观点。我试图在模型上安装 $watch,但这似乎不起作用。对此的任何帮助将不胜感激,谢谢!