ui-router:传入不在url中的param?

时间:2016-08-12 07:54:49

标签: angularjs angular-ui-router state

我在传递参数时遇到问题,该参数不是网址中的参数。

我在点击事件上基本上有以下内容

let stateParams = {
    id: event.info.id,
    info: event.info
};

this.$state.go('home.showinfo', stateParams);

我已经对stateParams进行了双重检查,其中包含id和info对象。

然后,我在状态

上进行了以下设置
.state('home.showinfo', {
    url: 'info/info/:id',
    resolve: {
        info: function($stateParams){
            return $stateParams.info;
        }
    },
    params: {
        info: null
    }

在我的控制器中,我正在检查$ stateparams的值,我看到id(也是URL包含ID),但info对象为null。它始终为空。我只是想能够在控制器中访问它。 “this.info”也是空的。

我在resole中放了一个断点,info为null。

我尝试删除上面的params:{},但仍然没有。

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:6)

a working plunker

代码应该正常工作,检查两次呼叫方。这些链接将按预期执行:

<a ui-sref="home.showinfo({id:1, info:'hi'})">
<a ui-sref="home.showinfo({id:2, info:'bye'})">

上面有一个州:

.state('home.showinfo', {
    url: 'info/info/:id',
    templateUrl: 'showinfo.tpl.html',
    resolve: {
        info: function($stateParams){
            return $stateParams.info;
        }
    },
    params: {
        info: null
    }
})

检查here