如何找到某个角色的所有内容?

时间:2014-05-28 16:28:37

标签: javascript angularjs

是否可以从角度路由的"/"字符串中的templateURL左侧获取所有内容。

例如:

var app = angular.module('demoApp',  ['ngResource', 'ngRoute'], function ($routeProvider){   
    $routeProvider
        .when('/',{templateUrl: 'directoryName/pageName.html', controller: 'mainCtrl'});

});

使用templateURL属性"directoryName/pageName.html"我想获得"directoryName"

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

使用正则表达式!

var regex = /([^\/]*)\//;
var stripped = regex.exec('#some/string/with/stuff')[1];

这会让您回到'#some'

修改

至于在代码中获取此代码,您可以使用$ rootScope上的$routeChangeSuccess事件来获取路由并在其他地方使用该字符串

$rootScope.$on('$routeChangeSuccess', function (event, current, previous) {
    // Use what @Dalorzo suggests
    var pathName = current.$$route.templateUrl.split('/')[0];
    // Do something with pathName ...
});

答案 1 :(得分:1)

您可以使用控制器内current服务的$route对象来获取当前路由对象。这样,要访问您需要使用的templateUrl属性:$route.current.templateUrl

现在你有了这个字符串,你可以在其上使用split('/')来获取URL中由/分隔的一系列标记。

最后,要在模板中使用它,您只需要在$scope中注入此值。