AngularJS ui-route:使用对象而不是参数

时间:2015-12-03 11:13:38

标签: angularjs angular-ui-router

我有一个关于ui-router的问题:当我只使用参数调用我的路由器时,一切正常。 我现在的问题是,是否可以将javascript-对象从我的html传输到我的路由器?

路由器的调用如下所示:

ui-sref="auth.name({parameter1: '{{parameter1}}', parameter2: '{{parameter2}}'})"

这是我的路由器:

function getScheduleConfirmationState() {
var state = {
    name: 'auth.name',
    url: '/url/:parameter1/:parameter2',
    templateUrl: 'url/to/html/my.html',
    controller: 'MyController',
    controllerAs: 'vm',
    resolve: {
        myService: 'myService',
        dataForController: function myFunction(myService, $stateParams) {
        return myService.getDataFromBackend();
        }
    }
}
return state;
};

1 个答案:

答案 0 :(得分:0)

是的,你可以,但你不能在URL中提供它们作为参数:

首先,您可以将对象原样放入ui-sref:

ui-sref="auth.name({parameter1: parameter1, parameter2: parameter2})"

您的州必须添加一个属性params

    params: {
        parameter1: null,
        parameter2: null
    }

从URL中删除参数,因为对象只能隐藏传输:

url: '/url'

在目标状态auth.name的控制器中,您需要注入$stateParams服务。然后,您可以通过以下方式访问这些参数:

$stateParams.parameter1 
$stateParams.parameter2

我希望这个概念足够清楚。如果不是让我知道。