如何使用UI路由器将对象传递到状态?

我希望能够使用ui-router转换为状态并传递任意对象。

我知道通常$stateParams会使用它,但是我相信此值会插入URL中,并且我不希望用户能够为该数据添加书签。

我想做这样的事情。

$state.transitionTo('newState', {myObj: {foo: 'bar'}});

function myCtrl($stateParams) {

console.log($stateParams.myObj); // -> {foo: 'bar'}

};

有没有办法在不将值编码到URL的情况下执行此操作?

回答:

在0.2.13版中,您应该可以将对象传递到$ state.go,

$state.go('myState', {myParam: {some: 'thing'}})

$stateProvider.state('myState', {

url: '/myState/{myParam:json}',

params: {myParam: null}, ...

然后访问控制器中的参数。

$stateParams.myParam //should be {some: 'thing'}

myParam将不会显示在URL中。

资源:

在此处复制:

christopherthielen:是的,现在应该在0.2.13中起作用。

.state(’foo’,{url:’/ foo /:param1?param2’,params:{param3:null} //

null为默认值});$ state.go(’foo’,{param1:’bar’,param2:’baz’,param3:{id:35,name:’what’}});

现在,“ foo”中的$stateParams为{param1:’bar’,param2:’baz’,param3:{id:35,name:’what’}}

网址是/ foo / bar?param2 = baz。

以上是 如何使用UI路由器将对象传递到状态? 的全部内容, 来源链接: utcz.com/qa/402504.html

回到顶部