我有一个关于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;
};
答案 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
我希望这个概念足够清楚。如果不是让我知道。