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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue 方法互相调用,被调用方法无法获取/更改data中的参数
    102
    0
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
        <title>RunJS 演示代码</title>
      </head>
    <body>
      <div id="helloApp">
            {{test}}
            <button @click="fun1"> te</button>
        </div>  
        
      </body>
    
    <script>
        var helloApp = new Vue({
            el: "#helloApp",
            data: {
                test: "200"
            },
            methods: {
                fun1: function() {
                    this.test = "300"
                    this.$options.methods.fun2()
                },
                fun2: function() {
                    alert(this.test)
                    this.test = "400"
                }
            }
        })
                
    
    </script>
    
    </html>
            

    代码如上,vue2.0,fun1调用了fun2,但是alert却是undefined,并且执行完后test的值为300,各位大佬可以解释下吗,谢谢!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 他是毒藥 普通会员 1楼

      在 Vue 中,如果一个方法被调用,并且该方法试图访问或更改数据中的某个属性,但实际操作没有成功,那么可能是因为 Vue 的数据绑定机制导致的。

      数据绑定是 Vue 中一种绑定数据的方法,它可以将数据绑定到 DOM 中的元素上,使得这些元素可以被修改。然而,如果一个方法试图访问或更改数据中的某个属性,但实际上没有成功,那么这个方法就不会被 Vue 的数据绑定机制正确地应用到 DOM 中。

      要解决这个问题,你需要检查以下几点:

      1. 确保你正在尝试访问的属性是在数据中被正确地定义的。如果你正在尝试访问一个未定义或未被初始化的属性,那么 Vue 的数据绑定机制就不会正确地应用到 DOM 中。

      2. 确保你正在尝试访问的属性已经被正确地初始化。如果你正在尝试访问一个尚未被初始化的属性,那么 Vue 的数据绑定机制就不会正确地应用到 DOM 中。

      3. 确保你正在尝试访问的属性是在你的方法中被正确地定义和初始化的。如果你正在尝试访问一个未定义或未被初始化的属性,那么 Vue 的数据绑定机制就不会正确地应用到 DOM 中。

      4. 确保你正在尝试访问的属性已经被正确地绑定到你的方法。如果你正在尝试访问一个未被正确地绑定到你的方法的属性,那么 Vue 的数据绑定机制就不会正确地应用到 DOM 中。

      5. 如果以上所有步骤都正确,但是仍然无法访问或更改数据中的某个属性,那么可能是因为你正在尝试访问的属性在 Vue 的组件树中是无法直接访问的。在这种情况下,你可能需要查看 Vue 的组件树或者使用其他的方法来访问和修改数据。

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