Javascript 执行的角度表达式顺序(带ng if的分层div';s)似乎没有按预期工作

Javascript 执行的角度表达式顺序(带ng if的分层div';s)似乎没有按预期工作,javascript,angularjs,angular-ng-if,Javascript,Angularjs,Angular Ng If,我有一个角度片段,可以简化为以下视图: <div ng-if="vm.selectedItem !== null"> <div ng-if="vm.selectedItem.someProperty !== null"> </div> </div> 我希望如果没有基于ng if将top div添加到DOM中,internal div将不会执行其表达式,但实际上,当某些内容发生更改时,我无法读取null的属

我有一个角度片段,可以简化为以下视图:

<div ng-if="vm.selectedItem !== null">

    <div ng-if="vm.selectedItem.someProperty !== null">         
    </div>

</div>

我希望如果没有基于ng if将top div添加到DOM中,internal div将不会执行其表达式,但实际上,当某些内容发生更改时,我无法读取null的属性“someProperty”


这是angular的默认行为吗?这里的顺序没有保证,我不能依赖外部div ng if's?

注意:
ng if
创建它自己的范围


您可以使用
ng show
而不是
ng if
:它不创建子作用域…

注意:
ng if
创建它自己的作用域


您可以使用
ng show
而不是
ng if
:它不会创建子范围…

您的问题是不可重现的。你的问题是无法重现的。是的,我已经这样做了,我只是想了解为什么会发生这种情况。我还使用了ng if,因为据我所知,它更“高效”(不渲染dom而不是不显示),我认为ng if不会避免渲染dom(它是在角度发生之前构建的…),但如果不满足条件,它会从dom中删除元素。。。所以,不,它可能不会更快。。。(另见)。是的,我已经这样做了,我只是想了解为什么会发生这种情况。我还使用了ng if,因为据我所知,它更“高效”(不渲染dom而不是不显示),我认为ng if不会避免渲染dom(它是在角度发生之前构建的…),但如果不满足条件,它会从dom中删除元素。。。所以,不,它可能不会更快。。。(另见)。