Skip to content
This repository was archived by the owner on Dec 25, 2017. It is now read-only.

Commit 7013c4e

Browse files
committed
🐛 bug(validate): fix cannot change validation rule and error message
1 parent 4ac1936 commit 7013c4e

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

src/directives/validate.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export default function (Vue) {
2929
*/
3030

3131
Vue.directive('validate', {
32+
deep: true,
3233
terminal: true,
3334
priority: vIf.priority + PRIORITY_VALIDATE,
3435
params: ['group', 'field', 'detect-blur', 'detect-change', 'initial', 'classes'],

test/specs/issues.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -569,4 +569,50 @@ describe('github issues', () => {
569569
})
570570
})
571571
})
572+
573+
describe('#284', () => {
574+
beforeEach(done => {
575+
el.innerHTML = `
576+
<validator name="validation">
577+
<input id="foo" type="text" v-model="foo" v-validate:foo="rules">
578+
</validator>
579+
`
580+
vm = new Vue({
581+
el,
582+
data: {
583+
foo: '',
584+
rules: {
585+
maxlength: {
586+
rule: 4,
587+
message: 'too long!!'
588+
},
589+
required: {
590+
rule: true,
591+
message: 'required!!'
592+
}
593+
}
594+
}
595+
})
596+
vm.$nextTick(done)
597+
})
598+
599+
it('should be validated', done => {
600+
let input = el.querySelector('#foo')
601+
vm.rules.required.message = 'required "foo" field!!'
602+
vm.$nextTick(() => {
603+
assert.equal(vm.$validation.foo.required, 'required "foo" field!!')
604+
input.value = 'hello'
605+
trigger(input, 'input')
606+
trigger(input, 'blur')
607+
vm.$nextTick(() => {
608+
assert.equal(vm.$validation.foo.maxlength, 'too long!!')
609+
vm.rules.maxlength.rule = 10
610+
vm.$nextTick(() => {
611+
assert(vm.$validation.foo.maxlength === false)
612+
done()
613+
})
614+
})
615+
})
616+
})
617+
})
572618
})

0 commit comments

Comments
 (0)