AngularJS分成多个文件 - 只有最后一个文件有效

deb*_*ian 5 javascript angularjs

我遇到了一个问题,即将我的AngularJS应用程序的逻辑拆分成多个文件,这给我带来了一个问题,即只有最后一个工作,而之前的工作可能会被跳过.

这是index.html包含:

<script src="js/app.js"></script>
<script src="js/app.config.js"></script>
<script src="js/controllers/HomeController.js"></script>
Run Code Online (Sandbox Code Playgroud)

每个文件包含非常少量的逻辑:

初始化:

angular.module('sportcial', ['ionic'])
.run(function run($ionicPlatform) {
    alert(2);
    $ionicPlatform.ready(function() {
        // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
        // for form inputs)
        if(window.cordova && window.cordova.plugins.Keyboard) {
          cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
        }

        if(window.StatusBar) {
          StatusBar.styleDefault();
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

配置:

angular.module('sportcial', ['ionic']).config(function configApp($ionicConfigProvider) {
    alert(1);
    $ionicConfigProvider.tabs.position('bottom');
});
Run Code Online (Sandbox Code Playgroud)

HomeController的:

angular.module('sportcial', ['ionic'])
    .config(function config($stateProvider, $urlRouterProvider) {
        alert(3)
    })
    .controller('HomeController', ['$scope', function HomeController($scope) {
        var home = this;
    }]
);
Run Code Online (Sandbox Code Playgroud)

只有最后一个触发警报(3)......

我在这里想念的是什么?:)

tho*_*aux 7

你正在覆盖sportcial每个文件中的模块.

使用setter语法

angular.module("moduleName", [moduleDependencies, ..])
Run Code Online (Sandbox Code Playgroud)

创建模块.

如果要向现有模块添加内容,则需要调用getter:

angular.module("moduleName")
Run Code Online (Sandbox Code Playgroud)

例如,您需要将配置文件更新为:

angular.module('sportcial').config(function configApp($ionicConfigProvider) {
    alert(1);
    $ionicConfigProvider.tabs.position('bottom');
});
Run Code Online (Sandbox Code Playgroud)