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 - 如何将 url 作为参数传递给 Angular js 服务中的 ajax 方法

javascript - toState.url 值不是嵌套状态的绝对散列

javascript - Angular ui 路由器单元测试(状态到 url)

javascript - 如何从 Ember 中的表单提交转换路由?

JavaScript 图像识别游戏

javascript - React,如何将表单数据发布到 API 端点?

javascript - Angular SPA 中的一百万个页面

javascript - 理解 Underscore 的 _.each

javascript - Nodejs 从 Controller 调用 Controller 给出 TypeError : res. json 不是函数

angularjs - Angular UI Router preventDefault 导致不稳定的行为