角度范围参考不起作用

时间:2015-08-22 17:14:54

标签: angularjs angularjs-scope angularjs-ng-repeat prototypal-inheritance

在下面,ng-show div不起作用。我从另一个div引用它,但在控制器内。请帮助。

<div ng-controller="MainCtrl" >
<div data-ng-repeat="choic in choice"  >
<form >
<input ng-model="mustShow"  class="label_align" type="radio" name="customer" value="no"  >
<div class="mediumSubhead"> Information housed </div>
 <br/>        
<input ng-model="mustShow"  class="label_align" type="radio" name="customer" value="yes" >
<div class="mediumSubhead"> Information housed outside </div>
            </form>
</div> 
<div ng-show="mustShow == 'yes'" > ----this part doesnt work
<input name="first_name"  class="text_box_space" type="text" value=""  style="color: black;"  size="25" width="200px" >
</div>
</div>
Controller.js

var app = angular.module('EquityCompensation', []);

  app.controller('MainCtrl', function($scope) {

  $scope.choice = [{id: 'choic1'}];

});

1 个答案:

答案 0 :(得分:1)

您在ng-model内声明ng-repeat,这是在ng-repeat范围内添加范围变量,因为ng-repeat确实在每次迭代时创建了一个新范围。您可以使用$parent表示法引用父作用域来指示父作用域变量。

ng-model="$parent.mustShow"

<强>替代

您可以使用点规则来使用原型继承,例如

$scope.option = {
   'mustShow': false
}

然后像ng-model="option.mustShow"

一样使用