使用ui-router ui-sref传递多个值

时间:2015-08-28 23:55:19

标签: angularjs angular-ui-router

我在ui-sref上呼吁国家取得了有限的成功。

我能够取回person.id值。我正在寻求从关键对象中取回所有值。

   $stateProvider.state('itinerary', {
        url: '/itinerary',
        views: {
            "main": {
                controller: 'ItineraryCtrl',
                templateUrl: 'src/app/itinerary/itinerary.tpl.html'
            },
            resolve: {
                 dates: ['$stateParams', function($stateParams){
                console.log('name',$stateParams);
                return $stateParams.dates;
                }]
            }
        },
        data: {
            pageTitle: 'Itinerary'
        }
    });

有没有办法让对象的所有属性都通过?

这是我正在使用的html标签

<td><a ui-sref="itinerary.name({name:person.id, details:person.dates})">{{person.name}}</a></td>

1 个答案:

答案 0 :(得分:2)

应该在网址上定义参数,因此如果从ui-sref$state.go加载状态或输入网址,您就会获得一致的行为。在这种情况下,参数必须是字符串。

$stateProvider.state('itinerary', {
    url: '/itinerary/:name/:details',
    // ... 
});

您可以将对象传递给某个状态,但从URL加载状态时这不起作用。为此,请在params属性中定义参数:

$stateProvider.state('itinerary', {
    url: '/itinerary/:name',  // name from URL
    params: {
         details: null        // details object
    },
    // ... 
});