我想根据引导下拉值禁用文本字段。
所以我写了这个

落下

<div class="dropdown">
<div ng-controller="dropDownCtrl">
<button class="btn btn-primary dropdown-toggle" type="button"  data-toggle="dropdown">
{{selectedItem}}<span class="caret"></span>
</button>
<ul class="dropdown-menu" ng-model="dropDown">
<li ng-repeat="a in subjects"><a ng-click="dropboxitemselected(a)">{{a}}</a></li>
</ul>
</div>


文本域

<div ng-controller="dropDownCtrl as ddc">
<label for="requester">Requester</label>
<input type="text" class="form-control" ng-disabled="ddc.checker" ng-model="requester"  id="requester" placeholder="requester" />
</div>


这是角度控制器

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

$scope.subjects = ['Yes','No'];
this.checker=false;
$scope.selectedItem;

$scope.dropboxitemselected = function (item) {
  $scope.selectedItem = item;
  if($scope.selectedItem == "Yes") {
      this.checker=true;
      alert($scope.selectedItem);
    }
}
});


以上所有内容都在同一标签中。警报告诉我调用了该函数,但是仍启用了文本字段。有人可以告诉我为什么吗?谢谢!

最佳答案

每个控制器都有自己的作用域,对ng-controller的每次调用都会获得该控制器的新实例。

因此,checker变量不会在您指定控制器的两个部分之间共享。

您可以测试一下jsfiddle的含义

09-25 18:26