【发布时间】:2015-01-02 19:01:49
【问题描述】:
今天遇到了一个很奇怪的问题,想搞明白为什么会这样
下面是我的html
<div class="partial-container workflow-cont" ng-if="true">
<div class="clearfix mb20">
<h3 class="heading-text pull-left pointer" ng-click="resetRole()" >{{'Roles' | translate}}</h3>
</div>
<div class="inner-container blue-border clearfix relative no-padding" ng-if="true">
<div class="role-left-nav pull-left">
.
.
.
Some other html
.
.
.
<div class="any-or-select pull-none clearfix valign-middle">
<p>
<input type="radio" name="choice_p" id="low" ng-model="defineChoice" value="0" >
<label for="low" class="ng-binding">{{'Absolute' | translate}}</label>
</p>
<p>
<input type="radio" name="choice_p" id="medium" ng-model="defineChoice" value="1" >
<label for="medium" class="ng-binding">{{'Attributes' | translate}}</label>
</p>
<p>
<input type="radio" name="choice_p" id="high" ng-model="defineChoice" value="2" >
<label for="high" class="ng-binding">{{'Rule' | translate}}</label>
</p>
</div>
现在,当我单击模型 defineChoice 的单选按钮时,值已成功更改。
但是当我尝试从控制器做同样的事情时
$scope.defineChoice = 0
它的值没有变回来,但是当我从控制器执行 console.log 时,它变为零但没有反映在视图中。
但是当我从任何地方删除 ng-if="true" 时,一切都很好! 这是因为 ng-if 创建了一个子作用域,但如果是这样,那么为什么它在 init 时第一次工作但后来变坏了。
【问题讨论】:
标签: javascript angularjs angularjs-scope