2015-02-04 128 views
1

我有以下的單選按鈕組:AngularJS - 設置默認值,如果沒有值選擇單選按鈕

<div class="checkboxgroup" ng-repeat="p in priorities"> 
    <input id="radio_{{ $index }}" ng-disabled="disable" type="radio" name="ShipPriority" ng-model="$parent.data.ShipPriority" value="{{ p.value }}" ng-change="UpdateHeader('ShipPriority', {{ p.value }})" /> 
    <label for="radio_{{ $index }}">{{ p.value }}</label> 
</div> 

值/標籤是數字1-5。由於它現在正在設置,如果以前沒有選擇過某個值,則沒有默認值,只是沒有選擇單選按鈕。如果沒有選擇前一個值,我想將默認值設置爲5。

+1

你不能把它設置在控制器上嗎? – PSL

+0

你的意思是p.value應該是5,如果它爲空? –

+0

@Bardh Lohaj所有不同的單選按鈕都會保留它們的值,但不會選擇null,而是選中單選按鈕#5。 – Miriam

回答

2

一種方法是隻使用ng-checked=""指令。

所以,你加ng-checked屬性,像這樣

ng-checked="$index == 1" 

這樣的表情,如果你想設置的第5單選按鈕($index = 4)檢查,以ng重複你的單選按鈕看起來像這樣:

<input id="radio_{{ $index }}" ng-disabled="disable" 
    type="radio" name="ShipPriority" 
    ng-model="$parent.data.ShipPriority" value="{{ p.value }}" 
    ng-change="UpdateHeader('ShipPriority', {{ p.value }})" 
    ng-checked="$index == 4" 
/> 

另一種方法是讓您優先陣列的檢查值。

所以,你在你控制器設定的優先級選中的值,這樣的事情:

$scope.priorities = [{"value":1},{"value":2, "checked":true}]; 

,比使用您認爲值:

ng-checked="p.checked" 

另一種方法是使用jQuery

$(document).ready(function() { 
    $("#radio_4").attr('checked', true); 
});