我在Angular 1.6 Controllers和Stripe中遇到此问题。我有一个控制器,可根据步骤更改视图。我正在基于Stripe的成功回调更改步骤,如下所示:
stripe.createToken(card).then((result) => {
if (result.error) {
// Inform the customer that there was an error.
var errorElement = document.getElementById('card-errors');
errorElement.textContent = result.error.message;
} else {
// Send the token to your server.
stripe_token = result.token;
//Change step
$scope.step = step;
}
})
.catch( e =>{
console.log("Error");
});
问题是当在回调中分配步骤时,分配了值,但视图未更新。有什么想法为什么只在Angular中的Stripe回调中发生?
答案 0 :(得分:1)
我没有足够的声誉在您自己的答案中添加评论,但我只是想补充一点,将适当的函数传递给$scope.apply
而不是简单地使用零参数进行调用是一种更好的做法。
答案 1 :(得分:0)
$scope.$apply();
必须在回调中使用。
答案 2 :(得分:0)
使用AngularJs提供的$ http服务。请求返回后,这将自动触发$ scope。$ digest