正确的 AngularJS 方法是什么:
我有一个页面接受一些用户信息和付款(通过 Stripe)。
付款成功后,我需要向用户显示一条消息,表明付款已被接受。
我是否将两个 View 合并在同一个部分中(我怀疑不是),然后根据某个作用域变量的状态显示一个 View ,即$scope. paymentAccepted
。
<form ng-if='!paymentAccepted'>
...
</form>
<div id='paymentSuccess' ng-if='paymentAccepted'>
<p>Your payment has been accepted</p>
</div>
或者我是否使用 $location
服务提供商将用户引导到另一个位置,然后使用那里的单独 View 和 Controller (我怀疑就是这样)。
这很挑剔,但我想阻止用户直接访问我的付款页面,这就是为什么我想用第一种方法来做到这一点。
处理这个问题的正确方法是什么?
最佳答案
如果您使用 ui-router,您的付款状态的子状态可能无法通过 URL 寻址。然后,您只需将 $state 注入(inject)您的 Controller ,并在成功完成付款后转换到相关状态,例如$state.go('home. payment.success')
.
编辑:假设您是从父状态(本例中为“home. payment”)转换,您实际上会将子状态引用为 $state.go('.success')
。
关于javascript - 支付成功页面AngularJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26912376/