【发布时间】:2017-09-28 04:57:42
【问题描述】:
我已将 Ionic 2 提示放置在提供程序(服务)中,就像这样..
showPromptOk(title, message, callback) {
let prompt = this.alertCtrl.create({
title: title || 'Alert!',
message: message,
buttons: [
{
text: 'Ok',
handler: data => {
if(callback) callback(data);
}
}
]
});
prompt.present();
}
我这样称呼它..
updateAccount() {
let self = this;
this.sk_account.update(this.account)
.subscribe((res) => {
this.sk_utils.showPromptOk('Success!', 'Your account has been updated!', (res) => {
self.edit_account = false;
self.edit_school = false;
});
}
)
}
问题在于,在这种情况下,“this”或“self”不再有效,它变成了提供者(服务)的上下文。如何设置处理程序以将“范围”传递回原始调用方,以便当我设置值时,它们实际上是在原始组件范围内设置它们,而不是在提供程序范围内?
更新 1:
添加回调(数据)后,我注意到视图模型不再更新。您可以在控制台中看到这些值现在设置为 false,但视图上的 {{edit_account}} 插值没有得到更新。请注意,该变量在视图上仍然是“真”。有什么想法吗?
【问题讨论】:
-
我想你忘了在这里传递数据:
handler: data => { if(callback) callback(data); } -
这是错字吗?
-
是什么错字?
-
我的第一条评论..您没有将数据传递给
showPromptOk中的回调..这是您的问题中的错字还是代码中的错误? -
是的,但这将如何自动解决我的问题?我不需要对这些数据做些什么吗?
标签: angular ionic-framework ionic2