2016-06-20 36 views
0

我刚开始尝试使用Webpack捆绑我的Angular App。当我已经包括了要领我收到以下错误'fn'不是Angular和Webpack的函数

Argument 'fn' is not a function, got string

我认为这是与角路线,但我无法找到任何东西,我可以看到什么是错的。

我的精简文件如下:

./index.html

<!DOCTYPE html> 
    <html lang="en" ng-app="crewGui"> 
    <head> 
     <title>GUI</title> 
     <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 
     <link rel="stylesheet" type="text/css" href="css/stylesheets/styles.css"> 

     <script src="js/dist/vendor.bundle.js"></script> 
     <script src="bower_components/Chart.js/Chart.js"></script> 
     <script src="bower_components/angular-chart.js/dist/angular-chart.js"></script> 
     <script src="bower_components/angular-busy/dist/angular-busy.min.js"></script> 

     <script src="js/dist/app.bundle.js"></script> 
    </head> 
    <body class="container-fluid"> 
     <header class="row"> 
      <div class="logo col-xs-6"> 
       <img src="images/logo_alt.png" class="img-responsive" alt"logo"> 
      </div> 
     </header> 
     <div id="content"> 
      <div class="container-fluid"> 
       <ng-view></ng-view> 
      </div> 
     </div> 
     <footer class="row"> 
      <div class="copyright col-xs-12">&copy;</div> 
     </footer> 
    </body> 
</html> 

./module.js

'use strict'; 

var angular = require('angular'); 
var ngRoute = require('angular-route'); 

angular 
    .module('crewGui', [ 
     'ngRoute' 
    ] 
); 

require('./'); 
require('./services'); 
require('./controllers'); 

./index.js

'use strict'; 

var angular = require('angular'); 
var ngRoute = require('angular-route'); 

angular 
    .module('crewGui') 
    .config('Config', require('./config')) 
    .run('Run', require('./run')); 

./run.js

'use strict'; 

Run.$inject = ['$http']; 

function Run($http) { 

    $http.defaults.headers.common['Access-Control-Allow-Origin'] = '*'; 
    $http.defaults.headers.common['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS, PUT'; 
    $http.defaults.headers.common['Content-Type'] = 'application/x-www-form-urlencoded'; 
    $http.defaults.headers.common['Accept'] = 'application/json'; 
    $http.defaults.headers.common.Authorization = "Basic AWORKINGAPIKEY"; 

}; 

module.exports = Run; 

./config.js

'use strict'; 

Config.$inject = ['$routeProvider']; 

function Config($routeProvider) { 

    $routeProvider 
     .when('/', { 
      templateUrl: 'partials/dashboard.html', 
      controller: 'DashboardController', 
      controllerAs: 'dashboard' 
     }) 
     .otherwise({ 
      redirectTo: '/' 
     }); 

}; 

module.exports = Config; 

./services/index.js

'use strict'; 

var angular = require('angular'); 
var ngRoute = require('angular-route'); 

angular 
    .module('crewGui') 
    .service('GetData', require('./get_data_service')); 

./services/get_data_service.js

'use strict'; 

GetData.$inject = ['$http']; 

function GetData($http) { 

    var self = this; 

    self.getData = function() { 
     return $http.get("https://aworkingurl") 
      .success(function (data, status, headers, config) { 
       return data; 
      }) 
      .error (function (data, status, headers, config) { 
       return status; 
      }); 
    }; 

}; 

module.exports = GetData; 

./controllers/index.js

'use strict'; 

var angular = require('angular'); 
var ngRoute = require('angular-route'); 

angular 
    .module('crewGui') 
    .controller('DashboardController', require('./controller_dashboard')); 

./controllers/controller_dashboard.js

'use strict'; 

DashboardController.$inject = ['$scope', 'GetData']; 

function DashboardController($scope, GetData) { 

    var self = this; 

    GetData.getData() 
     .then(function(data){ 
      self.flightData = data.data; 
     }); 

}; 

module.exports = DashboardController; 

不限建设性的帮助将不胜感激。如果有,请告诉我,你需要的任何东西。而且我可能不需要在各地都要求ngRoute。此时抓住吸管。

非常感谢。

+0

您是否使用调试工具来定位哪行代码引发此错误? – MarkoCen

+0

那么Chrome控制台只是将它作为vendor.bundle.js的一部分显示'return new ErrorConstructor(message);'这不是太有用。 Angular错误页面显示它是ngRoute的东西。 –

回答

2

在index.js尝试删除“配置”和“运行”等都以线条看起来像这样:

.config(require('./config')) 
.run(require('./run')); 

错误所建议的第一个参数必须是一个函数,而不是一个字符串:)

+0

梦幻般的@ G33kCentric似乎已经修复它!你是个明星! –

相关问题