所以这是我的自定义指令示例代码
myApp.directive('anchorLink', function () {
return {
restrict: 'EA',
link: function (scope, elem, attr) {
elem.on('click', function () {
scope.show = true;
});
}
};
});
这是我的html标记
<a href="javascript:;" anchor-link>click me</a>
<div ng-show='show'>show me</div>
<div ng-hide='show'>hide me</div>
正如你所看到的,我想在自定义指令环境之外操作$ scope.show,但它没有用。你能帮助我吗?
答案 0 :(得分:0)
你可以这样做:
<a href="javascript:;" ng-click="show=true">click me</a>
<div ng-show='show'>show me</div>
<div ng-hide='show'>hide me</div>
或:
myApp.directive('anchorLink', function () {
return {
restrict: 'EA',
link: function (scope, elem, attr) {
elem.on('click', function () {
scope.$apply(function (){
scope.show = true;
});
});
}
};
});
如果您的指令的唯一目的是绑定一个单击处理程序,那么您不需要指令来执行此操作,因为您只需使用ng-click。
第二个选项的工作plnkr:plnkr