剛開始使用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,但這似乎不起作用。任何幫助,將非常感激,謝謝!
您的目標是通知其他控制器該變量已更改?要麼? – KayakDave
只是在這一點指示,只是注意到我的標題有一個奇怪的錯字,哈哈。 – dardo
檢查了這一點,看看它是你在找什麼:http://stackoverflow.com/questions/17138868/how-to-trigger-a-directive-when-updating-a-model-in-angularjs – KayakDave