我在觀察指令中的示波器變量時遇到了一些困難。試圖從指令中的內部示波器觀察外部示波器不工作
我有一個範圍可變稱爲VAL控制器:
$scope.val = { name: "hello" };
我有一個使用該值的指令。因此,在此控制器的觀點我沿着線的東西:
<custom-component custom-attribute="val"></custom-component>
我已經建立了具有範圍的精細
var myDir = function() {
return {
restrict: 'E',
scope: {
customAttribute: '=customAttribute'
},
link: function(scope, elem, attr) {
scope.$watch('customAttribute', function(val){ console.log(val); }
},
replace: true,
template:'<div class="hello"></div>'
};
}
手錶功能火災時,我第一次運行一個指令應用程序。現在我在我的控制器中放了一個暫停,並執行如下操作:
setTimeout(function(){
console.log("Changed chart type name");
$scope.customAttribute.name="baz";
},5000);
這不會導致監視功能觸發!我不確定問題是什麼。我也試圖把超時的情況下,指令鏈接功能中有一些對象拷貝問題(下面範圍$表。):
link: function(scope, elem, attr) {
scope.$watch('customAttribute', function(val){ console.log(val); }
setTimeout(function(){
console.log("Changed chart type name");
scope.customAttribute.name="baz";
},5000);
},
這仍然沒有工作!
編輯:
所以,我已經發現,如果在我的控制器我調用$範圍$摘要()更新變量一切正常後。爲什麼我需要手動調用此函數?
這兩個答案都正確與他們您有什麼問題? http://docs.angularjs.org/api/ng.$timeout – shaunhusain