3

我的 app.js 中有以下内容:

var app = angular.module('app', ['admin', 'ui.compat', 'ngResource', 'LocalStorageModule']);
app.config(['$stateProvider', '$locationProvider',
    function ($stateProvider, $locationProvider) {
        $locationProvider.html5Mode(true);
        var home = {
            name: 'home',
            url: '/home',
            views: {
                'nav-sub': {
                    templateUrl: '/Content/app/home/partials/nav-sub.html',
                }
            }
        };
        $stateProvider.state(home)
    }])
    .run(['$rootScope', '$state', '$stateParams', function ($rootScope, $state, $stateParams) {
        $rootScope.$state = $state;
        $rootScope.$stateParams = $stateParams;
        $state.transitionTo('home');
    }]);

在 admin.js 中:

angular
    .module('admin', ['ui.state'])
    .config(['$stateProvider', '$locationProvider',
    function ($stateProvider, $locationProvider) {
        $locationProvider.html5Mode(true);
        var admin = {
            name: 'admin',
            url: '/admin',
            views: {
                'nav-sub': {
                    templateUrl: '/Content/app/admin/partials/nav-sub.html',
                }
            }
        };
        var adminContent = {
            name: 'admin.content',
            parent: admin,
            url: '/content', views: {
                'grid@': {
                    templateUrl: '/Content/app/admin/partials/content.html',
                    controller: 'AdminContentController'
                }
            }
        }
        $stateProvider.state(admin).state(adminContent)
    }])

我对如何连接我的 AdminContentController 感到困惑。目前我有以下内容:

app.controller('AdminContentController',
    ['$scope', 'entityService', 'gridService', 'gridSelectService', 'localStorageService',
    function ($scope, entityService, gridService, gridSelectService, localStorageService) {
        $scope.entityType = 'Content';

有人可以验证这是否是我设置模块并将其添加到应用程序的正确方法。我应该将控制器添加到应用程序:

app.controller('AdminContentController',

或者这应该属于模块'admin'。如果应该那么我应该如何接线?

4

2 回答 2

5

根据您共享的内容,控制器应在管理模块上创建,例如

var adminModule=angular.module('admin');   // This syntax get the module
adminModule.controller('AdminContentController',
    ['$scope', 'entityService', 'gridService', 'gridSelectService', 'localStorageService',
    function ($scope, entityService, gridService, gridSelectService, localStorageService) {
        $scope.entityType = 'Content';

您还可以在管理模块声明的延续中定义控制器。

于 2013-08-29T07:34:29.663 回答
5

是的,这angular.module('admin')可以作为吸气剂。因此,您将在每个文件中获得相同的模块。

于 2013-08-29T08:48:24.150 回答