Я пишу несколько сложное приложение angularjs. Я обнаружил, что моя основная модель контроллера должна действительно состоять из нескольких объектов, которые являются автономными функциями, которые будут использоваться другими контроллерами. Обычно это не проблема, но эти объекты должны быть в состоянии сказать, когда свойство было обновлено. Я подумал, что передам $scope в объект модели, и он сможет вызвать функцию $watch следующим образом:
function MyCtrl($scope){
$scope.myModel = new MyModel($scope);
//Do Ctrl Stuff
}
function MyModel($scope){
$scope.X = 2;
$scope.Y = 3;
$scope.$watch('Y', function(oldVal, newVal){
//do something important
});
}
Когда MyCtrl изменяет значение $scope.myModel.Y, ничего не происходит. Фактически, кажется, что MyModel необходимо отформатировать свои часы как $watch('myModel.Y'... что не очень полезно для абстракции, потому что ему нужно знать, как MyCtrl присвоил его $scope. Я думаю что желание абстрагировать логику в функции, которые можно использовать, было бы обычным явлением, но поиск Google, похоже, мне здесь не помогает.MyModel на самом деле является модулем приличного размера, и я хотел бы оставаться как можно более СУХИМ при использовании его в других Контроллеры Что здесь лучше всего?
Спасибо!