2017-01-01 45 views
0

不確定發生了什麼。我想在更改時觸發一個函數並將obj傳遞給它。據我所知,因爲它綁定到選定的obj,所以我可以使用ng-model。但是在這種情況下,當我切換單選按鈕時沒有任何變化。帶有無線電盒的ng-repeat在更改時未觸發

<label ng-repeat="obj in dayGroups"> 
     <input ng-model="selectedDayGroup" type="radio" name="dayGroups"> {{obj.name}} 
     </label> 

<!-- nothing happens --> 
{{selectedDayGroup}} 

//init 
$scope.selectedDayGroup = null; 

http://jsfiddle.net/a5rL8cda/

+0

Matt的回答是正確的。我想補充一點,你不需要初始化你將要進入ng模型的變量。在數據綁定一堆事情時保存代碼行。 –

回答

3

您可以使用valueng-value。此外,由於你在一個很NG-重複你將不得不使用$parent得到你想要的範圍:

<body ng-controller="Channels"> 
    <label ng-repeat="obj in dayGroups"> 
    <input ng-model="$parent.selectedDayGroup" type="radio" name="dayGroups" ng-value="obj"> {{obj.name}} 
    </label> 

    {{selectedDayGroup}} 
</body> 

http://jsfiddle.net/ud0gcpro/

0

NG-重複創建一個孤立的範圍,因此,你不能像這樣改變外部控制器作用域變量。

您可以使用$ parent顯式選擇外部範圍變量,也可以使用controller-as語法顯式選擇外部範圍。我更喜歡後者。

和其他人一樣,使用ng-value或value(僅限字符串)用於輸入。