ng-if和范围变量控制交互

时间:2014-12-19 22:40:22

标签: javascript angularjs

今天,当我正在玩角度时,我发现了一些有趣的东西。我找不到这种互动的正确解释。任何想法都是受欢迎的。

案例1:

<div ng-show="boolean"> Show/Hide This </div>
<button ng-click="boolean = !boolean" />

一切都按照假设运作。按钮切换div。每次点击都隐藏或显示

案例2:

<div ng-show="boolean"> Show/Hide This </div>
<div ng-if="showButton">
   <button ng-click="boolean = !boolean" />
</div>

在这种情况下,即使showButton为true,并且按钮可见,当我单击时,第一个div也不会改变状态。

案例2:

<div ng-show="boolean"> Show/Hide This </div>
<div ng-if="showButton">
   <button ng-click="updateBoolean()" />
</div>
  

//在控制器中   $ scope.updateBoolean = function(){$ scope.boolean   =!$ scope.boolean}

令人惊讶的是,当点击按钮时它会更新主要的div。


更新 好的,这么简短的答案供将来参考:与其他指令一样,ng-if指令会创建一个子范围。

0 个答案:

没有答案