正在$stateParams url中传递对象

Passing object in $stateParams url

本文关键字:对象 url stateParams 正在      更新时间:2023-09-26

我试图在我的url中传递一个对象作为param,但我得到了这个奇怪的信息。

http://localhost:8080/#/%5Bobject%20Object%5D=>[对象对象]

下面是我如何发送对象的代码。

var user = {"user":item};
$state.go("myState",user);

在我的路线

.state('myState',{
   url: "/:user",
   templateUrl: "user.html",
   controller: 'User',                  
});

当我试图访问查看用户页面时,我得到了上面的url,并且数据无法通过$stateParams.user访问,因为它是一个字符串[object Object]

我使用的是ui路由器版本v0.2.15,带有angular 1.3.4

如果您只是想将对象从一个状态的控制器传递到另一个状态,则不能使用URL状态参数,因为这些参数必须是字符串才能在URL中工作。

您可以使用params状态配置属性。

$stateProvider.state('myState', {
    url: 'whatever',
    templateUrl: 'user.html',
    controller: 'User',
    params: {
        user: null
    }
});

现在,可以转换到myState状态并传递复杂对象

$state.go('myState', {user: item});

并且您的CCD_ 5控制器可以参考CCD_。