6

我在单选按钮列表中有项目(使用ng-repeat)和button(最初禁用ng-disabled)继续。选择单选按钮后,我想启用“继续”按钮。

在 Angular 中执行此操作的正确方法是什么?

相关JS:

$scope.companies = [{
        "id": 3,
        "name": "Twitter"
    }, {
        "id": 2,
        "name": "Google"
    }, {
        "id": 1,
        "name": "Apple"
    }]

相关HTML:

<table>
  <tr ng-repeat="company in companies">
     <td>
       <input type="radio" ng-model="companyId" name="companyId" value="{{company.id}}" />{{company.name}}
      </td>
  </tr>
</table>

<button ng-disabled="!companyId">Continue</button>

提琴手

谢谢!

4

1 回答 1

18

ngRepeat 创建一个新范围,它是按钮使用的范围的子范围。您可以通过使用修复它

<input type="radio" ng-model="$parent.companyId" .../>

http://jsfiddle.net/UZkM8/1/

但更好的解决方案是更新已经在范围内的对象:

$scope.userChoice = {};

<input type="radio" ng-model="userChoice.companyId" .../>

<button ng-disabled="!userChoice.companyId">Continue</button>

http://jsfiddle.net/UZkM8/3/

于 2013-08-10T22:29:15.760 回答