在控制器的函数中访问 vue 实例
Accessing vue instance in controller's function
控制器:
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 实例?
我找到了解决办法,
可以在指令对象中使用 属性,它是 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"];
}
);
})
控制器:
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 实例?
我找到了解决办法, 可以在指令对象中使用 属性,它是 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"];
}
);
})