编辑表单时 Angular 和 Bootstrap 单选按钮冲突
Posted
技术标签:
【中文标题】编辑表单时 Angular 和 Bootstrap 单选按钮冲突【英文标题】:Angular and Bootstrap radio buttons conflict When Editing Form 【发布时间】:2016-02-29 14:56:41 【问题描述】:当我使用以下 html 和 AngularJs 代码编辑用户时,我无法检查自动单选按钮。当我控制台 changeUser
这将返回以下数据
"id":1,"username":"Ramesh","password":"Ramesh1@23","role":"admin","active":"no"
。当我加载编辑表单时,我必须自动检查以下代码中的no
单选按钮。
<div class="portlet-body form">
<!-- BEGIN FORM-->
<form class="form-horizontal form-bordered" name="editUserForm" data-ng-submit="userEdit(changeUser)">
<div class="form-body">
<div class="form-group">
<label class="control-label col-md-3">Username*</label>
<div class="col-md-4">
<input class="form-control" type="text" name="userName" data-ng-model="changeUser.username" value=" changeUser.username " data-ng-pattern="/^[a-z0-9_ .-]5,15$/i" required />
<span style="color:red" class="error" data-ng-show="editUserForm.userName.$error.pattern" >Only letters, integers, and underscores.Minimum 5 characters to maximum 15 characters.</span>
<span class="help-block"></span>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3">Password*</label>
<div class="col-md-4">
<input class="form-control" type="password" name="changePassword" data-ng-model="changeUser.password" value=" changeUser.password" data-ng-pattern="usersPattern.password" required />
<span style="color:red" class="error" data-ng-show="editUserForm.changePassword.$error.pattern">Minimum of 8 characters, 1 capital letter,1 lowercase, 1 special-case and 1 numeric.</span>
<span class="help-block"></span>
</div>
</div>
<div class="form-group">
<label class="control-label col-md-3">Action</label>
<div class="col-md-4">
<div class="radio-list">
<label class="radio-inline">
<input type="radio" name="optionsRadios2" data-ng-model="changeUser.active" value="yes"/>
Yes
</label>
<label class="radio-inline">
<input type="radio" name="optionsRadios2" data-ng-model="changerUser.active" value="no"/>
No
</label>
</div>
</div>
</div>
<div class="form-actions">
<div class="row">
<div class="col-md-offset-3 col-md-9">
<button type="submit" class="btn purple" data-ng-disabled= "editUserForm.$invalid">
<i class="fa fa-check"></i> Edit</button>
<button type="button" class="btn red" data-ng-click="cancelEdit()">Cancel</button>
</div>
</div>
</div>
</div>
</form>
<!-- END FORM-->
</div>
</div>
</div>
控制器是
(function ()
"use strict";
function UsersEditController($scope, UserFactory, $http, $location)
$scope.$on('$viewContentLoaded', function ()
App.initAjax(); // initialize core components
);
$scope.changeUser = ;
$scope.changeUser = UserFactory.get();
$scope.userEdit = function(data)
$scope.changeUser = data;
console.log($scope.changeUser);
;
$scope.usersPattern =
password: '((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%]).8,20)'
;
$scope.cancelEdit = function()
$location.path('users');
;
UsersEditController.$inject = ['$scope', 'UserFactory', '$http', '$location'];
angular.module('books').controller('UsersEditController', UsersEditController);
)()
【问题讨论】:
同时添加 JS 代码 【参考方案1】:我猜这就是你的答案(即使没有提供 js 代码:))
https://***.com/a/18446612/552194
您需要添加ng-value
并使用它来代替标准的value
【讨论】:
我更改为 ng-value,但仍然没有选中单选按钮,但是当我执行控制台时返回正确的值。 我认为你需要ng-value
和ng-model
在上面的代码中,我有 ng-model 和 ng-value 但没有显示选中按钮。
不,在上面的代码中你只有ng-model
--- <label class="radio-inline"> <input type="radio" name="optionsRadios2" data-ng-model="changerUser.active" value="no"/> No </label>
我在一段时间后添加并尝试这个<label class="radio-inline"> <input type="radio" name="optionsRadios2" data-ng-model="changeUser.active" data-ng-value="yes"/> Yes </label>
但这次也没有工作@David以上是关于编辑表单时 Angular 和 Bootstrap 单选按钮冲突的主要内容,如果未能解决你的问题,请参考以下文章
协调 Angular.js 和 Bootstrap 表单验证样式
使用 resolve angular-bootstrap-ui 时出错
Angular UI Bootstrap - 模态不会在第一次点击时弹出