Commit f203b14f9fe4ea37c16f343c69222605ca85a99d
1 parent
b50e59f5
form-item watch rules change change rules
Showing
1 changed file
with
16 additions
and
12 deletions
Show diff stats
src/components/form/form-item.vue
... | ... | @@ -90,6 +90,9 @@ |
90 | 90 | }, |
91 | 91 | validateStatus (val) { |
92 | 92 | this.validateState = val; |
93 | + }, | |
94 | + rules (val){ | |
95 | + this.setRules(); | |
93 | 96 | } |
94 | 97 | }, |
95 | 98 | inject: ['form'], |
... | ... | @@ -143,6 +146,18 @@ |
143 | 146 | } |
144 | 147 | }, |
145 | 148 | methods: { |
149 | + setRules() { | |
150 | + let rules = this.getRules(); | |
151 | + if (rules.length) { | |
152 | + rules.every((rule) => { | |
153 | + this.isRequired = rule.required; | |
154 | + }); | |
155 | + this.$off('on-form-blur', this.onFieldBlur); | |
156 | + this.$off('on-form-change', this.onFieldChange); | |
157 | + this.$on('on-form-blur', this.onFieldBlur); | |
158 | + this.$on('on-form-change', this.onFieldChange); | |
159 | + } | |
160 | + }, | |
146 | 161 | getRules () { |
147 | 162 | let formRules = this.form.rules; |
148 | 163 | const selfRules = this.rules; |
... | ... | @@ -229,18 +244,7 @@ |
229 | 244 | value: this.fieldValue |
230 | 245 | }); |
231 | 246 | |
232 | - let rules = this.getRules(); | |
233 | - | |
234 | - if (rules.length) { | |
235 | - rules.every(rule => { | |
236 | - if (rule.required) { | |
237 | - this.isRequired = true; | |
238 | - return false; | |
239 | - } | |
240 | - }); | |
241 | - this.$on('on-form-blur', this.onFieldBlur); | |
242 | - this.$on('on-form-change', this.onFieldChange); | |
243 | - } | |
247 | + this.setRules(); | |
244 | 248 | } |
245 | 249 | }, |
246 | 250 | beforeDestroy () { | ... | ... |