2014-03-13 58 views
4

我有一个相当小的角JS应用程序,它的工程很好,但我想添加一些依赖的例如bootstrap.ui。这是我的模块的开始,这很好用!依赖的打破应用程序

angular.module('awesomefeed') 
    .controller('MainCtrl', function ($scope, $http) { 

但是当我添加的依赖性的意见停止工作,控制器永远不会被调用(用调试器检查)。

angular.module('awesomefeed',['ui.bootstrap']) 
    .controller('MainCtrl', function ($scope, $http) { 

即使有一个空的依赖关系,问题仍然存在。

angular.module('awesomefeed',[]) 
    .controller('MainCtrl', function ($scope, $http) { 

我发现了一些教程,他们都认为这应该工作,我使用严格模式,我不知道这是否会影响这一点。

编辑:我解决了这个问题,正如George Stocker指出回购会随着时间的推移会发生变化,所以我要在这里描述我的修复方案,以适用于未来的参考。

我在两个地方调用angular.module,首先在app.js和controllers/main.js文件中调用。这些电话是这样的:

//file:app.js 
angular.module('awesomefeed', [ 
    'ngCookies', 
    'ngResource', 
    'ngSanitize', 
    'ngRoute' 
]).config(function ($routeProvider) { 

//file:controllers/main.js 
angular.module('awesomefeed') 
    .controller('MainCtrl', function ($scope, $http) { 

我想添加其他的依赖,所以我说[“ui.bootstrap”]在/controller/main.js模块电话,有什么我没有意识到创建和检索模块的区别。 (AngularJS docs creation and retrieval of a module)。 Main.js检索已经创建的angular.module('awesomefeed'),但是当我将这个依赖列表添加到调用中时,它停止了对已经存在的angular.module('awesomefeed')的调用,而是成为了创建调用它会用新创建的几乎空的angular.module('awesomefeed',['ui.bootstrap'])覆盖angular.module('awesomefeed')。

解决方法是将依赖项添加到app.js中创建调用的依赖项列表中。

+0

您是否在浏览器中运行代码并在控制台中查找错误? – JeffryHouser

+1

@Elian我们需要在问题本身中重现问题的所有代码。当您的源代码回购更改时,此问题将变得无用,因为它不会向未来的访问者展示问题所在。 –

+0

@GeorgeStocker Phil Sandlers答案解决了我的问题,我会在有空的时候更新问题以包含问题代码。 –

回答

4

假设你的代码是最新的链接,它看起来像您引用两个脚本/ app.js脚本/控制器/ main.js

这些都似乎添加模块“awesomefeed”。我猜这就是问题所在。

+0

这解决了我的问题,谢谢!我在原始答案中加入了一个扩展解释。 –