Gracias a las respuestas de esta página aprendieron sobre https://github.com/webadvanced/ng-remote-validate
Directivas de opción, que es un poco menos de lo que realmente no me gusta, ya que cada campo para escribir la directiva. El módulo es el mismo: una solución universal.
Pero en los módulos me faltaba algo - verifique en el campo varias reglas.
Luego acabo de modificar el módulo https://github.com/borodatych/ngRemoteValidate
Disculpas por el LÉAME ruso, eventualmente se alterará.
Me apresuro a compartir de repente tener a alguien con el mismo problema.
Sí, y nos hemos reunido aquí para esto ...
carga:
<script type="text/javascript" src="../your/path/remoteValidate.js"></script>
incluyen:
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>
BackEnd [Kohana]
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);
}
¡Esto funciona genial! Estoy usando la versión 0.6.1. Veo que hay un problema abierto que no utiliza 'inputnameSetArgs'. Y una solución para agregar '$ parent' al alcance. Cambié esto manualmente y luego se llama a 'SetArgs' con parámetros adicionales enviados al servidor. – Guus
Funciona perfectamente, gracias por compartir! –