https://github.com/webadvanced/ng-remote-validateについて学んだこのページからの回答のおかげで
オプション ディレクティブは、ディレクティブを記述する各フィールドとして、あまり好きではありません。モジュールは同じです - 普遍的なソリューションです。
しかし、モジュールで何かが欠けていました - フィールドでいくつかのルールを確認してください。
次に、モジュールhttps://github.com/borodatych/ngRemoteValidate
ロシアの README の謝罪を変更しましたが、最終的には変更されます。
同じ問題を抱えている人が突然いることを共有することを急いでいます。
はい、そして私たちはこのためにここに集まりました...
ロード:
<script type="text/javascript" src="../your/path/remoteValidate.js"></script>
含む:
var app = angular.module( 'myApp', [ 'remoteValidate' ] );
HTML
<input type="text" name="login"
ng-model="user.login"
remote-validate="( '/ajax/validation/login', ['not_empty',['min_length',2],['max_length',32],'domain','unique'] )"
required
/>
<br/>
<div class="form-input-valid" ng-show="form.login.$pristine || (form.login.$dirty && rv.login.$valid)">
From 2 to 16 characters (numbers, letters and hyphens)
</div>
<span class="form-input-valid error" ng-show="form.login.$error.remoteValidate">
<span ng:bind="form.login.$message"></span>
</span>
バックエンド [コハナ]
public function action_validation(){
$field = $this->request->param('field');
$value = Arr::get($_POST,'value');
$rules = Arr::get($_POST,'rules',[]);
$aValid[$field] = $value;
$validation = Validation::factory($aValid);
foreach( $rules AS $rule ){
if( in_array($rule,['unique']) ){
/// Clients - Users Models
$validation = $validation->rule($field,$rule,[':field',':value','Clients']);
}
elseif( is_array($rule) ){ /// min_length, max_length
$validation = $validation->rule($field,$rule[0],[':value',$rule[1]]);
}
else{
$validation = $validation->rule($field,$rule);
}
}
$c = false;
try{
$c = $validation->check();
}
catch( Exception $e ){
$err = $e->getMessage();
Response::jEcho($err);
}
if( $c ){
$response = [
'isValid' => TRUE,
'message' => 'GOOD'
];
}
else{
$e = $validation->errors('validation');
$response = [
'isValid' => FALSE,
'message' => $e[$field]
];
}
Response::jEcho($response);
}