使用ui-sref传递数据属性

时间:2016-11-02 14:04:56

标签: angularjs angular-ui-router ui-sref

我希望从ui-sref向控制器传递一些额外的数据。我正在循环一个json对象并将数据添加到sref:<a data-imgName="{{ img.name }}" data-imgDesc="{{ img.desc }}" ui-sref="main.imgDesc({imgid: '{{ img.id }}'})">

$stateProvider.state('main.imgDesc', {
        url: '/image/:imgid',
        templateUrl: '...',
        controller: 'ImageDescCtrl'
    });

我希望imgNameimgDesc进入控制器。我已经检查了$state,但没有找到它。有什么办法吗?

2 个答案:

答案 0 :(得分:8)

我们应该使用params : {}来声明任何类型的参数,甚至是复杂的对象:

$stateProvider.state('main.imgDesc', {
    url: '/image/:imgid',
    templateUrl: '...',
    controller: 'ImageDescCtrl',
    params: {
       imageData: null,
    }
});

我们准备通过那些

ui-sref="main.imgDesc({imgid: img.id, imageData: img })"

并且控制器可以要求$stateParams两者都可用(如果通过,如上所述)

答案 1 :(得分:1)

使用参数,

HTML

ui-sref="main.img({imageId: img.id, imageData: img })"

控制器

$stateProvider.state('main.img', {
url: '/image/:imgid',
templateUrl: '...',
controller: 'ImageDescCtrl',
params: {
   imgData: null,
}
});