如何在meanjs控制器中获取$route的访问权限
如何在meanjs控制器中获取$route的访问权限
我尝试获取当前路由,因为我在它上面添加了一个标题。
所以路由看起来像这样:
state('reports', { title: 'Reports', url: '/reports', templateUrl: 'modules/feeditems/views/reports.client.view.html' }).
我想获取标题,以便将其放在页面标题上。因此在标题控制器中,我想可以从我的代码中获取它:
angular.module('core').controller('HeaderController', ['$rootScope', '$route', '$scope', 'Authentication', 'Menus', function($rootScope, $route, $scope, Authentication, Menus) { $scope.authentication = Authentication; $scope.isCollapsed = false; $scope.menu = Menus.getMenu('topbar'); $scope.$route = $route; console.log ('typeof($route) = ' + typeof($route)); console.log ('typeof($route.current) = ' + typeof($route.current));
但是我得到了以下错误:
Error: [$injector:unpr] Unknown provider: $routeProvider <- $route
所以我添加了ngRoute:
ApplicationConfiguration.registerModule('core', ['ngRoute']);
然后我得到了以下错误:
Uncaught Error: [$injector:modulerr] Failed to instantiate module r2h
due to: Error: [$injector:modulerr] Failed to instantiate module core
due to: Error: [$injector:modulerr] Failed to instantiate module
ngRoute due to: Error: [$injector:nomod] Module 'ngRoute' is not
available! You either misspelled the module name or forgot to load it.
If registering a module ensure that you specify the dependencies as
the second argument.
我应该如何正确包含它?是否采用meanjs的方式?
问题的原因是使用了Angular UI Router,但不知道如何在控制器中访问$route。解决方法是按照以下步骤进行操作:
1. 首先,确保已经引入了angular-ui-router.js,并在应用程序的依赖中包含了ui.router模块。
2. 在配置中使用$stateProvider来注册状态(state)。
3. 根据需要,在配置中设置url和templateUrl等属性。
4. 要动态添加标题,可以参考提供的Stack Overflow回答。
以下是解决问题的具体代码示例:
app.config(function($stateProvider){ $stateProvider.state('reports', { url: '/reports', templateUrl: 'modules/feeditems/views/reports.client.view.html' }) })
这样,你就可以在控制器中通过访问$route来获取标题了。