AngularJS模块化设置

时间:2014-05-30 09:23:14

标签: javascript angularjs

直到最近,我一直把我的所有功能都扔进一个大的JS文件中。我现在正试图将这些模块分解为小模块,以使我的应用程序更具可移植性。

我的核心js文件(main.js)包含以下代码:

var App = angular.module("app", ['ui.bootstrap',  'angularMoment', 'chieffancypants.loadingBar', 'ngAnimate', 'ui.sortable', 'ngSanitize'], function ($interpolateProvider, $httpProvider) {
        $interpolateProvider.startSymbol('[[');
        $interpolateProvider.endSymbol(']]');
        $httpProvider.defaults.transformRequest = function (data) {
            if (data === undefined) {
                return data;
            }
            return $.param(data);
        };
        $httpProvider.defaults.headers.post['Content-Type'] = ''
        + 'application/x-www-form-urlencoded; charset=UTF-8';
        $httpProvider.defaults.headers.post['X-Requested-With'] = ''
        + 'XMLHttpRequest';
    });

在另一个文件(即blog.module.js)中,我有以下内容:

        (function(window, angular, undefined) {

        'use strict';

        angular.module("app", [])
        .controller('Blog', ['$scope', function ($scope) {
            alert('test');
        }]);
    });

当main.js文件及其所有依赖项加载时,第二个文件不会被加载。基本上找不到控制器。任何人都可以指出我可能出错的地方。?

由于

2 个答案:

答案 0 :(得分:0)

blog.module.js中的语法看起来像是在尝试创建两个名称相同的模块' app'。 像这样更改控制器模块

(function(window, angular, undefined) {

'use strict';

angular.module("app")
.controller('Blog', ['$scope', function ($scope) {
    alert('test');
}]);
});

答案 1 :(得分:0)

我引用你:

App = angular.module("app", ['ui.bootstrap', 
...
 angular.module("app", [])

cant 重新声明您可以重新打开的模块

App = angular.module("app", ['ui.bootstrap', 
...
 angular.module("app")

创建另一个

App = angular.module("app", ['ui.bootstrap', 'app.controller'
...
angular.module("app.controller")