我有下面提到的用於檢測元素的單擊事件的自定義指令。檢測控制器內的指令屬性值更改
指令
.directive('myDir', [
'$document', function ($document) {
return {
restrict: 'A',
scope: true,
link: function (scope, element, attrs) {
scope.IsWizardOpen = false;
element.on('click', function (e) {
scope.$apply(function() {
scope.IsWizardOpen = true;
});
e.stopPropagation(); //stop event from bubbling up to document object
});
}
};
}]);
我曾嘗試觀看控制器內部的IsWizardOpen
屬性的變化,如圖below.But它不工作?單擊元素(true
)後,IsWizardOpen
的值已更改。那麼您能告訴我問題在哪裏?提前致謝。
控制器
$scope.$watch('IsWizardOpen', function() {
if ($scope.IsWizardOpen) {
//my task
}
});
的Html
<div my-dir>
</div>
什麼是「IsWizardOpen」?你是什麼意思? –
@RameshRajendran它只是一個範圍屬性,我需要它來捕獲'click'事件。 – Sampath
它不起作用,因爲它是綁定到子作用域的原語,控制器的作用域不會知道它。 –