やや複雑な 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 は実際には適切なサイズのモジュールであり、他のモジュールで使用する場合はできるだけ DRY のままにしたいと考えています.ここでのベストプラクティスは何ですか?
ありがとう!