私のWebアプリケーションの機能の1つは、フォームを使用して新しいユーザー(username + password)を追加することです。これにより、コントローラ(UsersController
)に1つのJSONオブジェクト(l_usernames
)が定義されており、ユーザー名の繰り返しを避けるために、すべてのユーザー名がユーザーによって選択されています(ユニークなキーです)。私のデータのng-disabled(AngularJS)でJSONオブジェクトを検索する
サンプル(フェッチ-data.json) - オブジェクトの "ユーザ名"(l_usernames
)のフォーマット:
[{"0":"default","USERNAME":"default"},{"0":"user1","USERNAME":"user1"},{"0":"user2","USERNAME":"user2"},{"0":"user3","USERNAME":"user3"}]
新しいユーザーを追加するためのフォームのサンプルがあります(アドオンuser.html):私のコントローラ(userscontroller.js)の
<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>
サンプル:
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-無効(「保存」ボタンを無効にすることによって)で。また、このような状況が発生した場合、「Username already selected」という簡単なメッセージを印刷したいと考えています。ありがとうございました。
あなたが入力の値がすでにJSONに存在するかどうかを確認し、それに応じて入力検証を設定するためのディレクティブを作成することができます。フォームが無効な場合は、単にボタンを無効にしてください – yBrodsky