2016-11-10 31 views
4

我有一組單選按鈕,用於日,月和年。如何使中間選項使檢查的屬性工作?

<label> 
    <input type="radio" ng-model="IsDays" name="timeunit" > Period in days 
    <input type="radio" ng-model="IsMonths" ng-checked="true" name="timeunit"> Period in months 
    <input type="radio" ng-model="IsYears" name="timeunit" > Period in years 
</label> 


我已閱讀,儘管將選中的屬性中介選項,組中的最後一個按鈕將被選中,如果單選按鈕具有同名屬性值

我試圖與這兩個檢查NG-檢查= 「真」場景。

是否有一種簡單的方法來覆蓋此行爲並允許默認選中中間選項()?

UPDATE:解決了我自己的問題。請參閱下面的答案。

回答

0

您可以通過使用ngInit 像這樣做:

<input type="radio" ng-model="IsMonths" ng-init="checked=true" name="timeunit"> Period in months 
+0

不工作黯然 – SoulRayder

+1

在js文件中設置它找到了解決辦法..謝謝你的努力:) – SoulRayder

+0

更新的解決方案@Rahul – SoulRayder

1

發佈以供將來參考答案:

只是檢查將工作只有在最後的單選按鈕選擇需要由被檢查默認。

我們需要給checked =「checked」這樣才能用於中間選項。只是檢查不會在這種情況下工作。

<label> 
<input type="radio" ng-model="IsDays" name="timeunit" > Period in days 
<input type="radio" ng-model="IsMonths" checked="checked" name="timeunit"> Period in months 
<input type="radio" ng-model="IsYears" name="timeunit" > Period in years 

奇怪:)

UPDATE:這也沒有清除瀏覽器Cookie後工作。看了一些AngularJS文檔後,我得到了以下解決方案。

 <label> 
      <input type="radio" ng-model="timeunit" value="days"> 
      Period in days 
     </label><br /> 
     <label> 
      <input type="radio" ng-model="timeunit" value="months"> 
      Period in months 
     </label><br /> 
     <label> 
      <input type="radio" ng-model="timeunit" value="years"> 
      Period in years 
     </label><br /> 

而不是設置相同name屬性的,我們必須爲所有三個單選按鈕NG-模型設置相同的值,以使它們的功能爲一組。

要設置默認值,我們可以按照如下

function ($scope) { 

    $scope.timeunit = "months"; //Default set to months 

    //Other code 
} 
相關問題