我在角应用上使用模块/子模块,我的控制器在特定路由上不加载,但视图根据评论这question我应该引用主模块内的子模块,并应该做的伎俩。如何在angularjs中引用子模块中的控制器
这是我自举程序代码:
angular.module('mainApp', ['ui.bootstrap', 'ui.utils', 'ui.router', 'ngResource', 'ngAnimate', 'ngCookies', 'facebook', 'subModule1', 'subModule2', 'subModule3']);
angular.module('mainApp').config(function ($stateProvider, $urlRouterProvider, $locationProvider, FacebookProvider) {
$stateProvider.state("root",
{
url: '',
abstract: true,
views: {
'[email protected]': {
templateUrl: "/partial/footer/footer.html",
},
'[email protected]': {
templateUrl: "/partial/header/header.html",
}
}
}).state('root.home', {
url: '/index',
views: {
'[email protected]': {
templateUrl: '/partial/index/index.html',
controller: 'IndexCtrl'
}
},
}
).state('root.login', {
url: "/login",
views: {
'[email protected]': {
templateUrl: '/partial/login/login.html',
controller: 'LoginCtrl'
}
},
});
FacebookProvider.init('xxxxxx');
$urlRouterProvider.otherwise('/index');
$locationProvider.hashPrefix('!');
});
我有一个名为/subModule1/submodule1.js
angular.module('subModule1').config(function($stateProvider) {
$stateProvider.state("submodule1",
{
url: '',
abstract: true,
views: {
'[email protected]': {
templateUrl: "/partial/footer/footer.html",
},
'[email protected]': {
templateUrl: "/partial/header/header.html",
}
}
}).state('submodule1.dashboard',
{
url: '/dashboard',
views: {
'[email protected]': {
templateUrl: '/subModule1/partial/dashboard/dashboard.html',
controller: 'DashboardCtrl',
resolve: {
dashboardinfo: function($resource) {
var resourceGet = $resource('/submodule1/dashboard');
return resourceGet.get().$promise;
}
}
},
'[email protected]': {
templateUrl: '/submodule1/partial/sidebar/sidebar.html'
},
'[email protected]': {
templateUrl: '/submodule1/partial/navbar/navbar.html'
}
}
});
});
控制器是一个单独的文件夹的子模块配置定义为:
angular.module('subModule1').controller('DashboardCtrl', function ($scope, $interval, $resource, notification, dashboardinfo) { ... }
index l在这页的根ocated页面布局有
<html ng-app="mainApp">
和控制器有NG控制器definiton如下:
<div ng-controller="DashboardCtrl">
一切都很好,只是控制器没有运行,它不会被视图执行。
您是否尝试过这一点 - 控制器:'submodule1.DashboardCtrl', –
我试过,我得到[ng:areq]参数'submodule1.DashboardCtrl'不是一个函数,得到undefined –