如何在角度应用中访问非路由url参数?

时间:2015-06-11 17:29:01

标签: javascript angularjs kendo-ui angularjs-routing

我正在为ASP.NET MVC应用程序中使用大量kendo MVVM控件的现有页面的一部分添加角度应用程序。幸运的我。

我想从角度路线之前的URL路径访问参数。

对于具有以下内容的模块

MenuItem

当我击中时 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包含在我的控制器中。

如何访问它并将其传递给ctor?

1 个答案:

答案 0 :(得分:0)

由于我基本上从网址中获取了一个值,因此我使用了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];
}