如何在 angularjs 中预先设置 select 单选按钮
How to pre-select radio buttons in angularjs
当我的模型值为 true
时,我希望在加载时选择单选按钮,但它恰恰相反。正在选择所有 false
个模型。如何解决这个问题。
http://plnkr.co/edit/DIYm4vBM3srdS61K6EPA?p=preview
angular.module('radioExample', [])
.controller('ExampleController', ['$scope',
function($scope) {
$scope.kind = [{
name: 'task',
selected: false
}, {
name: 'bug',
selected: false
}, {
name: 'other',
selected: true
}, {
name: 'rfe',
selected: false
}]
$scope.$watch('kind', function() {
console.log('changed', JSON.stringify($scope.kind, null, 2))
}, true)
}
]);
使用 ng-value
这是 angular radio
的文档
<input type="radio" name="" id="" value="" ng-model="k.selected" ng-value="true" />
然后,如果 ng-value
是 true
并且模型值也是 true
那么复选框将被选中
这里是 update Demo
我修复了 plunker plunker
<form name="myForm" ng-controller="ExampleController">
<br />all 'false' radio buttons are selected when 'value' is used -------------
<br />
<div ng-repeat="k in kind">
<input type="radio" name="" id="" value="" ng-model="!k.selected" value="k.selected" />{{k.name}}
</div>
<br />all radio buttons are selected when 'ng-value' is used -------------
<br />
<div ng-repeat="k in kind">
<input type="radio" name="" id="" value="" ng-model="k.selected" ng-value="k.selected" />{{k.name}}
</div>
</form>
你做对了....只需要添加一个!所以模型将取范围值的反面...因为你同时使用它们我想它不会伤害你的代码
<input type="checkbox" id="rempass" ng-model="rememberMe" ng-checked="rememberMeUserInfoCheck()" > $scope.rememberMeUserInfoCheck=function() { return true; }
这对我有用
将 ng-checked ="true" 添加到您的无线电输入字段
`<input type="radio" ng-model="modelName" name="radioName" value="value1" ng-checked="true">`
对于使用 FormGroup
和 FormControl
的人:
在模板中:
- 添加
formControlName = sameNameforAllRadioButtonsOfAChoice
作为单选按钮 input
标签的属性。
- 同时添加
value = "true"
和 value = "false"
(您也可以使用数字和字符串来完成,但我将继续使用布尔值)。
在组件中:
- 添加名称,例如
sameNameforAllRadioButtonsOfAChoice
,到您的 FormGroup:
myForm = new FormGroup({sameNameforAllRadioButtonsOfAChoice: new FormControl('false')})
这会将默认值设置为 false
。在FormControl中,注意写成字符串!
奖金 - 如果您需要验证:
import { FormControl, FormGroup, Validators } from '@angular/forms';
myForm = new FormGroup({sameNameforAllRadioButtonsOfAChoice: new FormControl('false', [Validators.required])})
当我的模型值为 true
时,我希望在加载时选择单选按钮,但它恰恰相反。正在选择所有 false
个模型。如何解决这个问题。
http://plnkr.co/edit/DIYm4vBM3srdS61K6EPA?p=preview
angular.module('radioExample', [])
.controller('ExampleController', ['$scope',
function($scope) {
$scope.kind = [{
name: 'task',
selected: false
}, {
name: 'bug',
selected: false
}, {
name: 'other',
selected: true
}, {
name: 'rfe',
selected: false
}]
$scope.$watch('kind', function() {
console.log('changed', JSON.stringify($scope.kind, null, 2))
}, true)
}
]);
使用 ng-value
这是 angular radio
<input type="radio" name="" id="" value="" ng-model="k.selected" ng-value="true" />
然后,如果 ng-value
是 true
并且模型值也是 true
那么复选框将被选中
这里是 update Demo
我修复了 plunker plunker
<form name="myForm" ng-controller="ExampleController">
<br />all 'false' radio buttons are selected when 'value' is used -------------
<br />
<div ng-repeat="k in kind">
<input type="radio" name="" id="" value="" ng-model="!k.selected" value="k.selected" />{{k.name}}
</div>
<br />all radio buttons are selected when 'ng-value' is used -------------
<br />
<div ng-repeat="k in kind">
<input type="radio" name="" id="" value="" ng-model="k.selected" ng-value="k.selected" />{{k.name}}
</div>
</form>
你做对了....只需要添加一个!所以模型将取范围值的反面...因为你同时使用它们我想它不会伤害你的代码
<input type="checkbox" id="rempass" ng-model="rememberMe" ng-checked="rememberMeUserInfoCheck()" > $scope.rememberMeUserInfoCheck=function() { return true; }
这对我有用
将 ng-checked ="true" 添加到您的无线电输入字段
`<input type="radio" ng-model="modelName" name="radioName" value="value1" ng-checked="true">`
对于使用 FormGroup
和 FormControl
的人:
在模板中:
- 添加
formControlName = sameNameforAllRadioButtonsOfAChoice
作为单选按钮input
标签的属性。 - 同时添加
value = "true"
和value = "false"
(您也可以使用数字和字符串来完成,但我将继续使用布尔值)。
在组件中:
- 添加名称,例如
sameNameforAllRadioButtonsOfAChoice
,到您的 FormGroup:
myForm = new FormGroup({sameNameforAllRadioButtonsOfAChoice: new FormControl('false')})
这会将默认值设置为 false
。在FormControl中,注意写成字符串!
奖金 - 如果您需要验证:
import { FormControl, FormGroup, Validators } from '@angular/forms';
myForm = new FormGroup({sameNameforAllRadioButtonsOfAChoice: new FormControl('false', [Validators.required])})