【发布时间】:2016-05-04 20:59:34
【问题描述】:
我的 Web 应用程序的一个功能是可以通过表单添加新用户(用户名 + 密码)。因此,我在控制器 (UsersController) 中定义了一个 JSON 对象 (l_usernames),其中所有用户名都已由用户选择,以避免重复用户名(这是唯一键)。
我的数据示例 (fetched-data.json) - 对象“用户名”的格式 (l_usernames):
[{"0":"default","USERNAME":"default"},{"0":"user1","USERNAME":"user1"},{"0":"user2","USERNAME":"user2"},{"0":"user3","USERNAME":"user3"}]
有一个添加新用户的表单示例(add-user.html):
<div class="row" ng-controller="UsersController">
<div class="col-md-12">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">Add New User</h3>
</div>
<div class="panel-body">
<form class="form-horizontal" role="form">
<div class="form-group">
<label for="inputUserUsername" class="col-sm-2 control-label"><i class="icon fa fa-user"></i> USERNAME</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputUserUsername" placeholder="Username" ng-model="user_username">
</div>
</div>
<div class="form-group">
<label for="inputUserPassword" class="col-sm-2 control-label"><i class="icon fa fa-key"></i> PASSWORD</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="inputUserPassword" placeholder="Password" ng-model="user_password">
</div>
</div>
</form>
</div>
</div>
<form class="form-inline">
<div class="span7 text-center">
<button type="submit" class="btn btn-success" ng-click="addUser()" ng-disabled="(!user_username || !user_password)">Save</button>
</div>
</form>
</div>
</div>
我的控制器示例 (userscontroller.js):
var app = angular.module('myApp');
app.controller('UsersController', ['$scope', 'services', function($scope, services) {
services.getData().then(function(data){
$scope.l_usernames = data.data;
});
}])
.factory('services', ['$http', function($http){
var serviceBase = 'services/'
var object = {};
object.getData = function(){
return $http.get('fetched-data.json');
};
return object;
}]);
我想知道如果已经选择了用户名 - 搜索 JSON 对象 l_usernames - 禁用 ng-disabled(通过禁用“保存”按钮),如何不允许插入新用户。如果发生这种情况,我还想打印一条简单的消息 - “用户名已选择”。谢谢。
【问题讨论】:
-
您可以创建一个指令来检查输入的值是否已存在于您的 json 中并相应地设置输入验证。然后,如果表单无效,您只需禁用按钮
标签: javascript html angularjs json