我试图在我的网址中传递一个对象作为参数,但我得到了这个奇怪的形式。
http://localhost:8080/#/%5Bobject%20Object%5D => [object Object]
下面是关于我如何发送对象的代码。
var user = {"user":item};
$state.go("myState",user);
在我的路线
.state('myState',{
url: "/:user",
templateUrl: "user.html",
controller: 'User',
});
当我尝试访问查看用户页面时,我得到上面的网址,而且无法通过$stateParams.user
访问数据,因为它是一个字符串[object Object]
我使用ui-router版本v0.2.15,角度为1.3.4
答案 0 :(得分:1)
如果您只是想将一个对象从一个状态的控制器传递给另一个状态,则不能使用URL状态参数,因为这些参数必须是字符串才能在URL中工作。
您可以使用params
状态配置属性。
$stateProvider.state('myState', {
url: 'whatever',
templateUrl: 'user.html',
controller: 'User',
params: {
user: null
}
});
现在你可以转换到myState
状态并传递一个复杂的对象
$state.go('myState', {user: item});
并且您的User
控制器可以引用$stateParams.user
。