2017-02-05 37 views
0

如果我使用ng-checked="$first"設置單選按鈕的默認選擇,那麼它會被檢查。如果我用ng-checked="true"單選按鈕沒有得到檢查?在AngularJS中設置單選按鈕的方式有什麼不同=是true

請解釋什麼時候會發生這種情況?

我不能使用$first ACC我的使用情況

+0

請顯示一些代碼。你現在試過什麼? – lin

+0

它用'ng-checked =「true」很好地工作。見http://jsfiddle.net/y8ecnu4p/ – lin

回答

0

有一點需要注意的單選按鈕,一旦你檢查他們不能被選中。您必須提供其他選項。我爲你準備了一些樣品。

在第一種方法中,雖然我在控制器中將值設置爲true並將值設置爲1,但它獲得了checked.this是最佳解決方案。

使用ng-checked事件的第二種方法儘管我更改了值,但ng-model值沒有更新。所以你必須使用ng-change函數並跟蹤每個ng-model.personally沒有人喜歡這種方法。

var app = angular.module('myApp', []); 
 

 
app.controller('MainCtrl', function ($scope) { 
 
    $scope.myradio = true; 
 
    $scope.myradio_ng1 = true; 
 
    $scope.myradio_ng2 = false; 
 
    
 
    $scope.first = true; // probably you are getting this from db 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<!DOCTYPE html> 
 
<html ng-app="myApp"> 
 
<head> 
 
<title>Radio</title> 
 
</head> 
 
<body ng-controller="MainCtrl"> 
 
    <p>1. Using ng-model</p> 
 
    <div> 
 
    <label for="myradio1">Yes</label> 
 
    <input type="radio" ng-model="myradio" name="myradio" id="myradio1" value="1" /> 
 
    <label for="myradio2">No</label> 
 
    <input type="radio" ng-model="myradio" name="myradio" id="myradio2" value="0"/> 
 
    </div> 
 
    <div>Radio value: {{myradio}}</div> 
 
    <p>2. Using ng-checked</p> 
 
    <div> 
 
    <label for="myradio3">First</label> 
 
    <input type="radio" name="myradiong" id="myradio3" ng-checked="myradio_ng1" /> 
 
    <label for="myradio4">Second</label> 
 
    <input type="radio" name="myradiong" id="myradio4" ng-checked="myradio_ng2"/> 
 
    <div>Radio value for first: {{myradio_ng1}}</div> 
 
    <div>Radio value for Second: {{myradio_ng2}}</div> 
 
    </div> 
 
    
 
    <p>Your case</p> 
 
    <label for="first">First</label> 
 
    <input type="radio" id="first" ng-checked="first" /> 
 
</body> 
 
</html>

在你的情況,你有你想要的元素檢查時,這是真的。在您的控制器中,將$scope.first的值設置爲true或false,然後在您的視圖中使用ng-checked="first"。運行代碼片段查找結果。

相關問題