Ng-show&在我的项目中使用$ rootScope进行ng-hide?

时间:2016-07-14 09:54:44

标签: angularjs

我有这个代码,并且运行良好,我想知道如何在我的根范围内显示这个变量?

问题是我现在使用不同的控制器和指令 这样:

如果我把它放在directive1中:

<a href="" ng-click="showme=true">Show</a>
<button ng-click="showme=false">Hide</button> 

并且这在指令2中不起作用:

 <div class="wrapper">
        <p ng-hide="showme">It will appear here!</p>
        <h2 ng-show="showme">This is mah content, yo!</h2>
      </div>

如果在同一指令html + angular

中,则完整代码正常工作
 <div ng-app="">
      <h1>Ng-show & ng-hide</h1>
      <p class="description">Click on the "show"-link to see the content.</p>
      <a href="" ng-click="showme=true">Show</a>
      <button ng-click="showme=false">Hide</button> 

      <div class="wrapper">
        <p ng-hide="showme">It will appear here!</p>
        <h2 ng-show="showme">This is mah content, yo!</h2>
      </div>

    </div> 

我听说过我可以使用类似$rootScope之类的内容,但在这种情况下如何实现呢?谢谢。

1 个答案:

答案 0 :(得分:2)

您需要确保在show上设置$rootScope。方便的地方是run块:

.run(['$rootScope', function($rootScope) {
  $rootScope.show = false
}])

之后,所有范围都将从其父级继承show。

另一种选择。您实际上可以从任何模板直接引用$rootScope,这可能是最简单的解决方案:

<a href="" ng-click="$root.show = true">Show</a>
<button ng-click="$root.show = false">Hide</button>