UNPKG

nest-parrot

Version:
126 lines (112 loc) 2.91 kB
/** * Created by brad.wu on 8/24/2015. */ var validator = $pt.createModelValidator({ name: { length: 5 } }); var model = $pt.createModel({ name: 'abc' }, validator); // normal validation model.validate('name'); console.log('1st Validation:'); console.log('Model has error: ' + model.hasError()); console.log(model.getError('name')); validator = $pt.createModelValidator({ name: { length: { _when: function (model) { return model.get('code') == 'a'; }, rule: 5 } } }); model = $pt.createModel({ name: 'abc', code: 'a' }, validator); // when is true model.validate('name'); console.log('2nd Validation:'); console.log('Model has error: ' + model.hasError()); console.log(model.getError('name')); // when is false model.set('code', 'b'); model.validate('name'); console.log('3rd Validation:'); console.log('Model has error: ' + model.hasError()); console.log(model.getError('name')); validator = $pt.createModelValidator({ name: { length: [ { _phase: 'one', _when: function (model) { return model.get('code') == 'a'; }, rule: 5 }, { _phase: ['two', 'three'], rule: 6 } ] } }); model = $pt.createModel({ name: 'abc', code: 'a' }, validator); // when is true model.validateByPhase('one', 'name'); console.log('4th Validation:'); console.log('Model has error: ' + model.hasError()); console.log(model.getError('name')); model.validateByPhase('two', 'name'); console.log('5th Validation:'); console.log('Model has error: ' + model.hasError()); console.log(model.getError('name')); model = $pt.createModel({}, $pt.createModelValidator({ insuredPerson_CourtesyTitle: { required: { _when: function (model) { // alert(JSON.stringify(model.get('insuredCheck'))); return model.get('insuredCheck') == true; }, rule: true } } })); model.set('insuredCheck', true); model.validate(); console.log(model.getError()); // regexp listener model = $pt.createModel({ name: 'abc', code: 'a' }); var regexpListener = function(evt) { console.log('Monitor property[name=name, value=' + evt.new + '].'); }; model.addPostChangeListener(/name/, regexpListener); model.set('name', 'def'); model.removePostChangeListener(/name/, regexpListener); model.set('name', 'xyz'); model = $pt.createModel({ start: '2016/02/01 00:00:00.000', end: '2016/01/01 00:00:00.000' }, $pt.createModelValidator({ start: { before: { _phase: 'one', rule: { rule: 'end', label: 'End' } } } })); model.validateByPhase('one'); console.log(model.getError());