Функция обратного вызова в aurelia js
Я новичок в Aurelia JS. Здесь мне нужно сделать обратный звонок в Aurelia JS. Вот код, который я пробовал,file.js
this.commonFunctions.get_alrdyShrdUser(this.alrdyshardAry,function(err,result){
if(!err){
console.log("err,result",err,result);
this.sharedAlrdy = result;
}else{
}
});
commonFunctions
get_alrdyShrdUser(docids,callback){
this.httpValueConverter.call_http('sharing/users/list','POST',docids,'test')
.then(data => {
if(data.meta && data.meta.statusCode == 200) {
return callback(null,data.sharedUsers)
}
});
}
Здесь все работает нормально, функция обратного вызова также возвращает значение, но я не могу присвоить значение переменной aurelia (this.sharedAlrdy). Она выдает ошибку, Невозможно установить свойство sharedAlrdy из undefined. Это какой-то другой способ достижения?
1 ответ
Это не имеет ничего общего с Аурелией. У вас просто типичная проблема с JavaScript this
,
Поскольку вы используете Aurelia, я предполагаю, что это код ES6, и у вас есть поддержка функции стрелки. Используйте функцию стрелки в функциях обратного вызова, и у вас не будет проблем с захватом this
:
this.commonFunctions.get_alrdyShrdUser(this.alrdyshardAry, (err, result) => {
if (!err) {
console.log("err, result", err, result);
this.sharedAlrdy = result;
} else {
}
});
Для более подробной информации о функциях стрелок и this
Посмотрите на MDN.