正确的AngularJS方法是什么:
我有一个页面接受一些用户信息和付款(通过条纹)。
付款成功后,我需要向用户显示一条消息,说明已被接受。
我是否将两个视图组合在同一部分中(我怀疑不是),然后根据某个范围变量的状态显示一个,即$scope.paymentAccepted
。
<form ng-if='!paymentAccepted'>
...
</form>
<div id='paymentSuccess' ng-if='paymentAccepted'>
<p>Your payment has been accepted</p>
</div>
或者我是否使用$location
服务提供商将用户定向到另一个位置,然后从那里使用单独的视图和控制器(我怀疑是这样)。
这称之为挑剔,但我想阻止用户直接访问我的付款页面,这就是为什么我想以第一种方式做到这一点。
处理此问题的正确方法是什么?
答案 0 :(得分:1)
如果您使用ui-router,您可能会有一个不支持URL的子状态。然后,您只需要向控制器注入$ state,并在成功完成付款后转换到相关状态,例如$state.go('home.payment.success')
。
编辑:假设您正在从父级转换(&#39; home.payment&#39;在此示例中),您实际上将子状态引用为$state.go('.success')
。