我有下面提到的用于检测元素的单击事件的自定义指令。检测控制器内的指令属性值更改
指令
.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
它不起作用,因为它是绑定到子作用域的原语,控制器的作用域不会知道它。 –