gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 04:18:18 28 4
gpt4 key购买 nike

在 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com