<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                >[success] # 更新模型 ~~~ 1.隨著業務逐漸在使用,'element-ui' 和 'iview'等 一系列'ui-框架',我們的模型 也需要對應這些框架做對應的升級 ~~~ >[danger] ##### 升級'BaseModel' [async-validator](https://github.com/yiminghe/async-validator) 這類框架基于的驗證庫 ~~~ 1.例如'element-ui' 使用方法' { validator: validatePass2, trigger: 'blur' }' 其中'validatePass2' 是自定義的驗證方法,我們更具這個條件來改進我們 'BaseModel' 只要保證'validatorOf' 返回的是等價'validatePass2'這種格式 var validatePass2 = (rule, value, callback) => { if (value === '') { callback(new Error('請再次輸入密碼')); } else if (value !== this.ruleForm.pass) { callback(new Error('兩次輸入密碼不一致!')); } else { callback(); } }; ~~~ * 公司版本 ~~~ class ValidatableObject { // 查當前類生成的實例,對應的指定字段映射的驗證類 decoratorsOf( property, metaKey = KEY_DECO_VALIDATORS) { const rs = Reflect.getMetadata(metaKey, this, property) return Array.isArray(rs) ? rs : [rs] } validatorOf(property, args) { const self = this return async function(rule, value, callback) { const vArr = self.decoratorsOf(property, KEY_DECO_VALIDATORS) if (vArr) { const val = self[property] for (const it of vArr) { if (!(await it.validate(val, args))) { callback(new Error(it.errorMessage)) return } } } callback() } } } ~~~ * 個人認為實際有用版本 ~~~ import {KEY_DECO_VALIDATORS} from '../untils/decorators' export default class BaseModel{ // 查當前類生成的實例,對應的指定字段映射的驗證類 decoratorsOf( property, metaKey = KEY_DECO_VALIDATORS) { const rs = Reflect.getMetadata(metaKey, this, property) return Array.isArray(rs) ? rs : [rs] } validatorOf(property, args) { return async (rule, value, callback)=> { const vArr = this.decoratorsOf(property, KEY_DECO_VALIDATORS) if (vArr) { const val = this[property] for (const it of vArr) { if (!(await it.validate(val, args))) { callback(new Error(it.errorMessage)) return } } } callback() } } } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看