Angularjs 吴秀兰;在我的项目中使用$rootScope隐藏?

Angularjs 吴秀兰;在我的项目中使用$rootScope隐藏?,angularjs,Angularjs,我有下面的代码,并且运行良好,我想知道如何使这个变量显示在我的根范围内 问题是我现在使用的是不同的控制器和指令 因此: 如果我把它放在指令1中: <a href="" ng-click="showme=true">Show</a> <button ng-click="showme=false">Hide</button> 隐藏 而这在指令2中不起作用: <div class="wrapper"> <p n

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

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

如果我把它放在指令1中:

<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>

它将出现在这里

这是mah内容,哟!
如果在同一指令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> 

Ng显示和Ng隐藏

单击“显示”链接以查看内容

隐藏

它将出现在这里

这是mah内容,哟!

我听说我可以使用这样的东西:
$rootScope
,但在这种情况下我如何实现它呢?谢谢。

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

.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>

隐藏

确保您在$rootScope上定义了show。这可能会帮助您感谢我的jshint,并抱怨:20 |。运行(['$rootScope',function($rootScope){^需要一个标识符,而是看到了“.”。20 |。运行(['$rootScope',function($rootScope){^应为赋值或函数调用,但看到的是表达式。20 |。run(['$rootScope',function($rootScope){^缺少分号。20 |。run(['$rootScope',function($rootScope){^'run'未定义。因为它不是有效语法。
。run
是角度模块的一种方法。