控制器:
Vue.directive('fetch',function(value,scope){
value["url"].isLiteral = true;
qwest.post(value["url"]).then(
function(response){
console.log(response);
if (response["CODE"] == 1){
console.log(response["RESULT"]);
this.result = response["RESULT"];
this.error = "";
}else{
this.result = "";
this.error = response["ERROR"];
}
}
).catch(
function(e,response){
this.error = response["ERROR"];
}
);
})
型号:
var test = new Vue({
el : "#test",
data : {
code : "",
result : "",
error : ""
}
})
所以,如果我使用this.result
,它就超出了范围,但是如果我将它引用为test.result
,那么它就会被访问并且值会被更新,所以通用的访问方式是什么vue实例?
答案 0 :(得分:0)
我找到了解决方案, 可以使用指令对象中可用的属性,它是this.vm,它实际上是指令的vue模型,因此可以使用this.vm并在调用函数之前将其分配给某个变量,从而使用名称this.vm被指定为单例函数调用的变量。
Vue.directive('fetch',function(value){
value["url"].isLiteral = true;
var model = this.vm;
qwest.post(value["url"]).then(
function(response){
console.log(response);
if (response["CODE"] == 1){
console.log(response["RESULT"]);
model.result = response["RESULT"];
model.error = "";
}else{
model.result = "";
model.error = response["ERROR"];
}
}
).catch(
function(e,response){
model.error = response["ERROR"];
}
);
})