下面的代码引用了一个组件函数,该函数从url获取数据,并try 将该数据设置为属性.它不起作用,似乎this无法从ajax clousure范围访问.

var MyComp = Vue.extend({
props: {
        html_prop: {}
        ....
},
methods: {
        fetchCondiciones: function(url){

            $.ajax({
                    type: "GET",
                    url: url,
                    cache: false,
                    data: vardata ,
                    success: function(data,status,error) {
                        if( data!=''){
                            this.html_prop = data;
                        }
                    },
                    error: function(data,status,error){
                        alert(error);
                    }
            });

        }

        ...
    }
})

我怎样才能让this人进入?

推荐答案

您需要在this上下文中调用回调,因为回调不是在组件的上下文中自然调用的:

var MyComp = Vue.extend({
props: {
        html_prop: null,
},
        // ....
        fetchCondiciones: function(url){

            $.ajax({
                    type: "GET",
                    url: url,
                    cache: false,
                    data: vardata,
                    success: function(data,status,error) {
                        if(data != ''){
                            this.html_prop = data;
                        }
                    }.bind(this), // bind this here
                    error: function(data,status,error){
                        alert(error);
                    }.bind(this) // bind this here
            });

        }

        // ...
});

你可以在这里了解更多关于.bindhttps://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Function/bind的信息

Vue.js相关问答推荐

复选框列未在vutify中排序

vue3中的转换可以在滑入但不能滑出时工作

Pinia+Vue 3状态react 性-StoreToRef的替代方案

元素不会对react 性props 的更改做出react

在 Vue.js 2.6 的 Javascript 中访问 的内容

VeeValidate 4 字段验证状态

在 Vuex Store 模块中使用 Vue.js 插件

Vue CLI - 编译后将配置文件保留为外部

[Vue 警告]:渲染函数中的错误:TypeError:无法读取属性 'first_name' of null

Vuetify v-select 组件宽度变化

如何在 Vue.js 中触发点击 ref

Nuxt & Vuetify:如何控制 CSS 文件的加载顺序?

NuxtServerInit 在 Vuex 模块模式下不起作用 - Nuxt.js

在 Vue.js 中,为什么我们必须在导入组件后导出它们?

根据路由动态插入 CSS 类到导航栏

按键删除对象不会更新vue组件

如何从方法内部访问数据

将 ref 的内容从子组件传递到另一个 VueJS 子组件

Vue.js 3 - 替换/更新react性对象而不会失go react性

如何在 vuejs 中的基于类的组件中编写计算设置器