2015-10-13 48 views
0

我正在使用ng-repeat爲我的表單創建單選按鈕。我遇到的問題是,在檢查項目時,該值不綁定到viewModel。值不綁定到viewModel使用控制器作爲&ng-repeat

我'控制器'的名稱是'請求'。

<div class="form-group col-md-6" ng-repeat="type in request.serviceTypes"> 
    <div class="form-wrapper"> 
      <input type="radio" ng-checked="type.isChecked" class="form-control" name="serviceType" ng-value="{{type.name}}" ng-model="request.formData.serviceType"> 
      <label for="serviceType" required class="check" ng-click="request.toggleServiceType(type.id)">{{type.name}}</label> 
    </div> 
</div> 

有沒有人遇到過這個問題?對於記錄,當使用輸入類型的文本時,我沒有綁定到request.formData的問題,這個問題只發生在收音機的問題上。

撥動服務功能的代碼如下

vm.toggleServiceType = function(id){ 
     angular.forEach(vm.serviceTypes, function(serviceType, key){ 
      if(serviceType.id === id){ 
       serviceType.isChecked = true; 
      }else{ 
       serviceType.isChecked = false; 
      } 
     }); 
    }; 

我添加這裏plunkr http://plnkr.co/edit/g2juiZZqFihfcduiOH9n?p=preview

+0

您可以創建一個小提琴在這裏可以查看? –

+0

@UtkuApaydin我已經更新了這個問題,並且鏈接到了plunkr –

+1

@cezar,因爲從技術上講,這不是控制器的正確方法,特別是如果您希望遷移到Angular 2.0。你特別不應該再使用$ scope。請看Jon Papa的風格指南,因爲這是Angular團隊假定每個人都在關注的內容 –

回答

0

我竟然想通了這個問題。顯然,對於使用angularJS的單選按鈕,它不使用ng檢查。它實際上看起來是看模型的價值。

我所做的修改功能

request.toggleServiceType = function(name){ 
    request.formData.serviceType = name; 
}; 

更新plunkr http://plnkr.co/edit/F5S5Jz7LAoBi40Zzjmx7?p=preview

相關問題