gpt4 book ai didi

javascript - AngularJS、回调和变量范围

转载 作者:行者123 更新时间:2023-12-03 12:04:32 24 4
gpt4 key购买 nike

我实际上面临着 javascript 的一般问题。事实上,我需要在两个不同文件中调用回调后更新列表。

这是我对回调的描述:

 this.modify = function(){
var self = this;
var success = function(){
self.user = self.userEdit;
};

var err = function(data){
alert(data);
};

UserService.put(this.userEdit, success, err);
}
}

这是调用回调的函数:

 UserService.put = function (data, succ, err) {
var user = {login:data.login,nom:data.nom,prenom:data.prenom,password:data.password};
$http({
url: __ADRS_SRV__ + "user/"+data._id,
method: "PUT",
data:user,
isArray: true
}).success(function(data){
succ();
}).error(function(error){
err(error);
});
}

事实上,

var success = function(){
self.user = self.userEdit;
};

似乎无法正常工作,当我在回调调用中记录 self.user 时,我得到了一个未定义的...

你有办法绕过这个吗?

感谢您的提前

最佳答案

在声明 success 函数之前,您必须记住 thisself:

var self = this;
var success = function(){
self.user = self.userEdit;
};

或者替代方案是仅使用 this,但将函数与 this 变量绑定(bind):

var success = function() {
this.user = this.userEdit;
}.bind(this);

希望这有帮助。

关于javascript - AngularJS、回调和变量范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25237646/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com