账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue中拿不到data的数据作为参数传入函数
    • 2017-09-29 00:00
    • 10
    25
    0

    这里用到了iviews ui插件,当在输入框输入数据时,弹出不同的校验信息提示,当输入框失去焦点时,会触发validator对应的函数

    我自己自定义了一个js文件validFunction.js,里面有一个函数:

    export function validateInfo(validItem) {
        var validateInfoObj = {        
            validatePassCheck: function (rule, value, callback) {
                var validType = "pwdCheck";
                pwdCK=value;
                if (value === '') {
                    callback(new Error(showMessage(validType, 0)));
                } else if (value !== pwd) { //value !== this.formCustom.passwd
                    console.log(validItem);
                    console.log(' value='+value );
                    console.log( 'pwd='+pwd );
                    callback(new Error(showMessage(validType, 1)));
    
                } else {
                    callback();
                }
            },
        }
    
        return validateInfoObj;
    }
    //selfFormRule.vue文件,其中data里面的数据:
    data () {    
                return {//此处只列出passwdCheck,还有其他数据,不一一列出
                    formCustom: {
                        passwdCheck: '',
    
                    },
                    ruleCustom: {
                        passwdCheck: [
                        //问题:this.formCustom识别不到,参数传不进去js的函数中
                            { validator: this.validateInfo(this.formCustom).validatePassCheck, trigger: 'blur' }
                        ],
    
                    }
                }
    }
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 深深爱过你 普通会员 1楼

      在Vue中,data 是组件的私有属性,它存储了组件的数据。当你通过 props 投入数据时,需要使用箭头函数或者闭包来获取 data

      如果你直接在函数参数中传递数据,Vue 会将这个数据保存在 this.$data 中。如果你不希望这样做,你可以在函数参数中定义一个默认值,或者使用 get 方法获取数据。

      例如:

      javascript export default { data() { return { count: 0 } }, methods: { increment() { this.count++ } } }

      在这个例子中,我们在 increment 方法中将 count 的值增加 1。这样,increment 方法就可以直接获取 this.$data.count 的值,而不需要通过箭头函数或者闭包。

      如果你想要通过函数参数获取 data,你可以使用箭头函数:

      javascript export default { data() { return { count: 0 } }, methods: { increment() { return this.$data.count + 1 } } }

      在这个例子中,increment 方法可以获取到 this.$data.count 的值,并直接将其加 1。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部