无URL状态间数据传递的AngularJS UI路由器

无URL状态间数据传递的AngularJS UI路由器

我面临着这样的问题:在两个状态之间传递数据,而不公开url中的数据,这就好像用户不能真正直接降落在这个状态上一样。

例如。我有两个州“A”和“B”。我在状态“A”中执行一些服务器调用,并将调用的响应传递给状态“B”。服务器调用的响应是一个字符串消息,它很长,所以我不能在url中公开它。

那么,在不使用url参数的情况下,在角度UI路由器中有任何方式在状态之间传递数据吗?


慕娘9325324
浏览 614回答 2
2回答

蓝山帝景

Params对象包含在$state Params中,但不会成为url的一部分。1)在路由配置中:$stateProvider.state('edit_user',&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;url:&nbsp;'/users/:user_id/edit', &nbsp;&nbsp;&nbsp;&nbsp;templateUrl:&nbsp;'views/editUser.html', &nbsp;&nbsp;&nbsp;&nbsp;controller:&nbsp;'editUserCtrl', &nbsp;&nbsp;&nbsp;&nbsp;params:&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;paramOne:&nbsp;{&nbsp;objectProperty:&nbsp;"defaultValueOne"&nbsp;},&nbsp;&nbsp;//default&nbsp;value &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;paramTwo:&nbsp;"defaultValueTwo" &nbsp;&nbsp;&nbsp;&nbsp;}});(2)在控权人中:.controller('editUserCtrl',&nbsp;function&nbsp;($stateParams,&nbsp;$scope)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;$scope.paramOne&nbsp;=&nbsp;$stateParams.paramOne; &nbsp;&nbsp;&nbsp;&nbsp;$scope.paramTwo&nbsp;=&nbsp;$stateParams.paramTwo;});3A)从控制器更改状态$state.go("edit_user",&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;user_id:&nbsp;1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;paramOne:&nbsp;{&nbsp;objectProperty:&nbsp;"test_not_default1"&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;paramTwo:&nbsp;"from&nbsp;controller"});3b)在html中更改状态<div&nbsp;ui-sref="edit_user({&nbsp;user_id:&nbsp;3,&nbsp;paramOne:&nbsp;{&nbsp;objectProperty:&nbsp;'from_html1'&nbsp;},&nbsp;paramTwo:&nbsp;'fromhtml2'&nbsp;})"></div>示例柱塞
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

AngularJS