Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么这不会导致无限循环?_Javascript_Angularjs_Angular Ng If - Fatal编程技术网

Javascript 为什么这不会导致无限循环?

Javascript 为什么这不会导致无限循环?,javascript,angularjs,angular-ng-if,Javascript,Angularjs,Angular Ng If,我有这段代码。从逻辑上讲,这应该进入无限渲染循环。但它保持稳定,输出是a和b,两者一起打印 <div ng-if='hello'> <span ng-init='hello=false'>a</span> </div> <div ng-if='!hello'> <span ng-init='hello=true'>b</span> </div> JS 从逻辑上讲,这应该进入无限渲染循

我有这段代码。从逻辑上讲,这应该进入无限渲染循环。但它保持稳定,输出是
a
b
,两者一起打印

<div ng-if='hello'>
    <span ng-init='hello=false'>a</span>
</div>
<div ng-if='!hello'>
    <span ng-init='hello=true'>b</span>
</div>
JS

从逻辑上讲,这应该进入无限渲染循环


不,不应该。指令创建新的子作用域,并因此修改(创建)独立标志,该标志不影响ngIf中使用的标志(父作用域
hello
)。

如@dfsq menced所述,如果创建新作用域,则应使用如下内容:

<div ng-if='hello'>
    <span ng-init='$parent.hello=false'>a</span>
</div>
<div ng-if='!hello'>
    <span ng-init='$parent.hello=true'>b</span>
</div>

A.
B

ng如果创建了一个新的作用域,那么它们不会引用相同的InstanceHanks。我已经用代码笔链接更新了我的问题。为什么它仍然稳定?
(function() {
  var app = angular.module("app", []);

  app.controller("appCtrl", [
    "$scope",
    function($scope) {
      $scope.object = {};
      $scope.object.hello = true;
    }
  ]);
})();
<div ng-if='hello'>
    <span ng-init='$parent.hello=false'>a</span>
</div>
<div ng-if='!hello'>
    <span ng-init='$parent.hello=true'>b</span>
</div>