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

我在传递一个不是URL中的参数的参数时遇到问题.

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

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”也是null.

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

我试过删除上面的参数:{}但仍然没有.

我有什么想法我做错了吗?

最佳答案
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

转载注明原文:angularjs – ui-router:传入不在url中的param? - 代码日志