我正在处理我的angularui项目。 在moduleI中尝试获取我在URL中发送的变量。
这是模块定义:
angular.module("workPlan", ['damageEvent',
'ui.router',
'geomindCommon',
'templates',
'lookups',
'ngTouch',
'ui.grid',
'ui.grid.expandable',
'ui.grid.selection',
'ui.grid.pinning',
'ui.grid.resizeColumns',
'ui.bootstrap'
])
.config([
"$stateProvider",
"$urlRouterProvider",
function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/MainPage");
$stateProvider
.state("workPlan", {
abstract: true,
url: "/",
template: "<ui-view></ui-view>"
})
.state("workPlan.list", {
url: "MainPage",
templateUrl: "app/workPlan/templates/workPlanList.tmpl.html",
controller: "workPlanListController",
controllerAs: "list",
resolve: {
param: function ($stateParams) {
var stringParam = $stateParams.myParam;
return $stateParams.myParam;
},
filterParameters: [filterParametersResolver],
workPlans: ["workPlanServise", workPlanServiseResolver]
}
})
}
]);
在这行中,我尝试从URL获取参数:
param: function ($stateParams) {
var stringParam = $stateParams.myParam;
return $stateParams.myParam;
},
这是我的网址:
http://example.com/playground#/MainPage?myParam = "Some string"
但stringParam总是undefined
。
知道我在做错了什么吗?为什么stringParam
是undefined
。
答案 0 :(得分:2)
我们必须定义参数。在url
或params : {}
对象中。所以这应该解决它:
.state("workPlan.list", {
//url: "MainPage",
url: "MainPage?myParam", // here we say, that myParam is expected in url
如何设置params