javascript - 使用 ui-sref 解析处于 ui-router 状态的对象

标签 javascript angularjs angular-ui-router

在 Angular Controller 和 ui-sref 链接中有非常大的 JSON 对象,我想将这个对象传递给 ui-view 中的模板 Controller 。
我知道,我可以使用 ui-sref 将参数传递给 state,但我不希望这个对象出现在地址栏中。另外,我知道我们可以在状态中使用“resolve”选项,但我找不到如何将数据从链接传递到“resolve”函数。

更新
如果我这样使用 $state.go:
路由器配置

state('social.feed.detailed',
     url: '/:activityID'
     templateUrl: 'views/social/detailedactivity.html'
)

在模板中

<ums-social-activity ng-repeat="record in SOC_FEED_CTRL.records"
     activity="record"
     ui-sref-active="selected"
     ng-click="SOC_FEED_CTRL.goToDetailed(record)">
</ums-social-activity>

在 Controller 中

$scope.SOC_FEED_CTRL.goToDetailed = (activity) ->
     # here activity is real object
     $state.go('social.feed.detailed', {'activityID':activity.id, 'activity':activity})

然后 'activity' 参数根本没有解析。
更新 2
如果我将路由配置修改为:

state('social.feed.detailed',
    url: '/:activityID?activity'
    templateUrl: 'views/social/detailedactivity.html'
)

那么activity就是字符串“[object Object]”

最佳答案

可以使用ui-router模块的$state.go函数调用手动传入$stateParams不会出现在网址。因此,与其使用 ui-sref 属性,不如设置一个 ng-click 处理程序来调用 $state.go(STATE,{'param' :JSON}).

然后,将$stateParams 注入(inject)到您的 Controller 中,并读取

$stateParams.param

取回您的 JSON 对象。

关于javascript - 使用 ui-sref 解析处于 ui-router 状态的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21704880/

相关文章:

javascript - 我可以将 Javascript 对象传递给 Android WebView 吗?

javascript - 如何使用jquery计算html表中的行

javascript - 如何捕获用户生成的对象数组?

javascript - 带有 Ng-repeat 和静态选项卡的 ui-tab

javascript - Angular ui-router ui-sref 包括*所有*参数,而不仅仅是所需的参数

javascript - 如何让键盘+屏幕阅读器访问我的 Accordion ?

javascript - Jquery 验证多个选项卡,一次验证一个?

javascript - 避免 AngularJS 部分 View 在 IE 中缓存

AngularJS:如何从 URL 中删除 #!/(爆炸前缀)?

php - 在environment.prod.ts 文件上设置条件