2017-02-05 3 views
0

Если я установил выбор по умолчанию для переключателя с помощью ng-checked="$first", тогда он был проверен. Если я использую ng-checked="true", переключатель не проверяется?Какая разница в способах установки радиокнопки checked = true в AngularJS

Пожалуйста, объясните, когда это может произойти?

Я не могу использовать $first согл моему использования при

+0

Просьба указать код. Что вы пробовали прямо сейчас? – lin

+0

Он отлично работает с 'ng-checked =" true ". См. Http://jsfiddle.net/y8ecnu4p/ – lin

ответ

0

Одна вещь, чтобы отметить о радио-кнопок, как только вы проверяете они не могут быть бесконтрольно. Вы должны предоставить другие варианты. Я подготовил для вас несколько образцов.

В 1-ом методе, хотя я установил значение true в контроллере и установил значение в 1, оно было проверено. Это наиболее оптимальное решение.

2-й метод с использованием проверки ng-check, хотя я изменяю значение, но значения ng-модели не обновляются. поэтому вам нужно использовать функцию ng-change и отслеживать каждую ng-модель. Лично никто не любит этот метод.

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". Найдите результат, выполнив фрагмент кода.

Смежные вопросы