इस पेज से जवाब के लिए धन्यवाद के बारे में https://github.com/webadvanced/ng-remote-validate
सीखा
विकल्प निर्देश, जो वास्तव में पसंद नहीं करते हैं, उससे थोड़ा कम है, क्योंकि प्रत्येक फ़ील्ड निर्देश लिखने के लिए है। मॉड्यूल समान है - एक सार्वभौमिक समाधान।
लेकिन मॉड्यूल में मुझे कुछ याद आ रहा था - कई नियमों के लिए फ़ील्ड की जांच करें।
फिर मैंने मॉड्यूल को संशोधित किया https://github.com/borodatych/ngRemoteValidate
रूसी रीडमे के लिए माफी, अंततः बदल जाएगी।
मुझे अचानक साझा करने के लिए जल्द ही एक ही समस्या है।
हां, और हम इसके लिए यहां एकत्र हुए हैं ...
लोड:
<script type="text/javascript" src="../your/path/remoteValidate.js"></script>
को शामिल करें:
var app = angular.module('myApp', [ 'remoteValidate' ]);
एचटीएमएल
<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>
बैकएंड [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);
}
यह बहुत अच्छा काम करता है! मैं संस्करण 0.6.1 का उपयोग कर रहा हूं, मुझे लगता है कि 'inputnameSetArgs' का उपयोग करके एक खुला मुद्दा नहीं है। और दायरे में '$ पैरेंट 'जोड़ने का एक फिक्स। मैंने इसे मैन्युअल रूप से बदल दिया और फिर 'SetArgs' को सर्वर पर भेजे गए अतिरिक्त पैरामीटर के साथ बुलाया जाता है। – Guus
पूरी तरह से काम करता है, आपके साझाकरण के लिए धन्यवाद! –