ディレクティブを作成していて、親スコープの変更を監視する必要があります。これが好ましい方法であるかどうかはわかりませんが、次のコードでは機能しません。
scope.$watch(scope.$parent.data.overlaytype,function() {
console.log("Change Detected...");
})
これはウィンドウの読み込み時にログオンしましたが、overlaytype が変更された場合でも、二度とログオンしませんでした。
変更を監視するにはどうすればよいoverlaytype
ですか?
編集: ここにディレクティブ全体があります。子スコープを取得する理由が完全にはわかりません
/* Center overlays vertically directive */
aw.directive('center',function($window){
return {
restrict : "A",
link : function(scope,elem,attrs){
var resize = function() {
var winHeight = $window.innerHeight - 90,
overlayHeight = elem[0].offsetHeight,
diff = (winHeight - overlayHeight) / 2;
elem.css('top',diff+"px");
};
var watchForChange = function() {
return scope.$parent.data.overlaytype;
}
scope.$watch(watchForChange,function() {
$window.setTimeout(function() {
resize();
}, 1);
})
angular.element($window).bind('resize',function(e){
console.log(scope.$parent.data.overlaytype)
resize();
});
}
};
});