2013-08-10 40 views
6

Tôi có các mục trong danh sách nút radio (sử dụng ng-repeat) với button (ban đầu bị vô hiệu hóa với ng-disabled) để tiếp tục. Khi một nút radio được chọn, tôi muốn kích hoạt nút "Tiếp tục".Bật/tắt nút dựa trên lựa chọn nút radio trong AngularJS

Cách thích hợp để thực hiện việc này trong Angular là gì?

JS liên quan:

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

liên quan 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> 

Jsfiddle

Cảm ơn!

Trả lời

15

ngRepeat tạo ra một phạm vi mới, là phạm vi con của phạm vi được sử dụng bởi nút. Bạn có thể sửa chữa nó bằng cách sử dụng

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

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

Nhưng một giải pháp tốt hơn sẽ được cập nhật một đối tượng mà đã nằm trong phạm vi:

$scope.userChoice = {}; 

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

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

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

+1

tác phẩm này hoàn hảo. Đã không nhận ra rằng ng-lặp lại tạo ra một phạm vi mới. Cảm ơn JB! – jetcom

Các vấn đề liên quan