styleプロパティが更新されない理由がわからないようです。私のより大きなアプリケーションでは、うまく機能しているようです。
angular.module('Model', [])
.factory('SizeModel', function () {
return {
width: 200,
height: 100,
display:"block",
getCombined: function() {
return parseInt(this.width) + parseInt(this.height);
}
};
});
function AlbumCtrl($scope,SizeModel) {
$scope.master = SizeModel;
$scope.$watch("master",function(){
$scope.myprop = { display: $scope.master.display,
backgroundColor: "#333",
width: $scope.master.width+'px',
height: $scope.master.height+'px',
color: "#FFF"
};
});
}
function AnoCtrl($scope,SizeModel) {
$scope.master = SizeModel;
$scope.toggle = function(){
$scope.master.display = "none";
}
}
function EditCtrl($scope,SizeModel) {
$scope.master = SizeModel;
}
http://jsfiddle.net/ganarajpr/C2hRa/4/
これが私が現在直面している問題を示すフィドルです。入力を変更すると、divで幅と高さが更新されていることがわかります。しかし、スタイル自体は更新されていないようです。ここで私が間違っていることを誰かに教えてもらえますか?
次のすべてのシナリオを試しました
- using$scope。$apply..-$applyがすでに進行中であることを示すエラーをスローします。
- $rootScope。$apply-上記と同じ。
- 他のコントローラーで$watchedされているサービスに別の変数を設定します。-変化は見られません。
誰かが私にこれに対する答えを得ることができれば本当にクールでしょう。また、正確に更新されていない理由を教えていただければ幸いです。