0

所以这是我的自定义指令示例代码

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 但它不起作用..你能帮帮我吗?

4

1 回答 1

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

于 2014-07-02T17:44:32.530 回答