AngularJS - 使用指令单击内部元素时隐藏div

时间:2013-11-21 15:27:14

标签: javascript angularjs angularjs-directive angularjs-scope

点击此框内的链接时,我试图隐藏一个框。

我不想使用一个指令,一旦盒子被隐藏就能够添加更多的代码并保持它的通用性,所以我可以将它与其他视图一起使用。

我尝试使用隔离范围,但我想我做错了。

这是一个小提琴链接:http://jsfiddle.net/rJvqf/

我的控制器中有一个:

$scope.hideLoginBox = false;

在我看来,我有一个带有ng-hide =“hideLoginBox”的div

<div ng-app="MyApp">
  <div ng-controller="MyController">
    <div class="base" ng-hide="hideLoginBox">
        <p>outer</p>
            <div class="child">
                <a href="" my-test="" hidebox="hideLoginBox" >
                    innner
                </a>
            </div>
    </div>
  </div>
</div>

当我点击链接时,我想使用指令myTest隐藏这个div。

我无法弄清楚如何做到这一点。

感谢您的帮助!

此致 埃里克

1 个答案:

答案 0 :(得分:1)

几乎就在那里。您只需要一个scope.$apply,因为您处于元素的bind事件中,我将其更改为绑定到click而不是mousedown

这是working jsfiddle

的变化:

  element.on('click', function(event) {
    scope.hideLoginBox = true;
    scope.hidebox = true;
    scope.$apply();
    console.log(scope);   
  });