是否可以从角度路由的"/"
字符串中的templateURL
左侧获取所有内容。
例如:
var app = angular.module('demoApp', ['ngResource', 'ngRoute'], function ($routeProvider){
$routeProvider
.when('/',{templateUrl: 'directoryName/pageName.html', controller: 'mainCtrl'});
});
使用templateURL
属性"directoryName/pageName.html"
我想获得"directoryName"
我怎样才能做到这一点?
答案 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
中注入此值。