如何在 angular 应用程序中访问非路由 url 参数?
How can I access non-route url parameters in an angular app?
我正在将 angular 应用程序添加到现有页面的一部分,该页面在 ASP.NET MVC 应用程序中使用了大量 kendo MVVM 控件。幸运的我。
我想从 angular 路由之前的 URL 路由访问参数。
因此对于具有以下内容的模块:
angular
.module('myModule', ['someCommonControls', 'ngRoute', 'aConfigModule'])
.config(function ($routeProvider) {
$routeProvider
.when('/Something/Something/Details/:somethingId', {
templateUrl:'/path/to/templates/awesome.html',
controller: 'awesome',
controllerAs: 'awesome'
}
})
.otherwise({ redirectTo: '/awesome' })
;
});
当我打
http://localhost/Something/Something/Details/something-id-guid-deadbeef
页面加载并包含我的应用程序和其他路由
http://localhost/Something/Something/Details/something-id-guid-deadbeef#awesome
现在,路由基于 #awesome
,因此不包含 somethingId
以便我推送到我的控制器 ctor。
如何访问它并将其传递给 ctor?
因为我基本上是从 url 中获取一个值,所以我使用 old school approach 直到我可以正确地在整个应用程序中使用路由:
ctrl.theGuid = '';
if (document.location.pathname.indexOf('/Something/Something/Details') != -1) {
//TODO update this to the routing engine when possible
//0:first '/', 1:Something, 2:Something, 3:Details, 4: guid
ctrl.theGuid = document.location.pathname.split('/')[4];
}
我正在将 angular 应用程序添加到现有页面的一部分,该页面在 ASP.NET MVC 应用程序中使用了大量 kendo MVVM 控件。幸运的我。
我想从 angular 路由之前的 URL 路由访问参数。
因此对于具有以下内容的模块:
angular
.module('myModule', ['someCommonControls', 'ngRoute', 'aConfigModule'])
.config(function ($routeProvider) {
$routeProvider
.when('/Something/Something/Details/:somethingId', {
templateUrl:'/path/to/templates/awesome.html',
controller: 'awesome',
controllerAs: 'awesome'
}
})
.otherwise({ redirectTo: '/awesome' })
;
});
当我打
http://localhost/Something/Something/Details/something-id-guid-deadbeef
页面加载并包含我的应用程序和其他路由
http://localhost/Something/Something/Details/something-id-guid-deadbeef#awesome
现在,路由基于 #awesome
,因此不包含 somethingId
以便我推送到我的控制器 ctor。
如何访问它并将其传递给 ctor?
因为我基本上是从 url 中获取一个值,所以我使用 old school approach 直到我可以正确地在整个应用程序中使用路由:
ctrl.theGuid = '';
if (document.location.pathname.indexOf('/Something/Something/Details') != -1) {
//TODO update this to the routing engine when possible
//0:first '/', 1:Something, 2:Something, 3:Details, 4: guid
ctrl.theGuid = document.location.pathname.split('/')[4];
}