我正在开发一个角度为1.6.x和ui-router 1.0.x的项目
我想更改浏览器网址而不重新加载状态,为此我尝试了这个:
$state.transitionTo($state.$current.name, {param1: "value"}, {
location: true,
inherit: true,
relative: $state.$current,
reload: false,
//Seems to be deprecated...
notify: false
});
我只想更改url中的 param1 值,但 transitionTo 重新加载我当前的状态,因此销毁并重新创建我的控制器。
我之前使用的是ui-router 0.x,而 notify 参数也适用于此。
如何使用ui-router 1.0.x执行此操作?
谢谢!
答案 0 :(得分:0)
我认为这是一个错误(使用ui-router 1.0.3)。
定义:
.state('app.order', {
url: '/order/:id',
params: {
id: { value: null } // id is optional
},
.....
尝试了所有变体:
some_id can either be an int or null
$state.go('.', {
id: some_id
}, { location: true });
$state.go('.', {
id: some_id
}, { location: "replace" });
$state.go('.', {
id: some_id
}, { location: true, reload: false });
$state.go('.', {
id: some_id
}, { location: "replace", reload: false });
答案 1 :(得分:0)
事实是我没有朝着正确的方向前进!
为此,我必须将参数定义为动态:
https://ui-router.github.io/ng1/docs/latest/interfaces/params.paramdeclaration.html#dynamic
感谢@Anber