javascript - “fn”不是 Angular 和 Webpack 的函数

标签 javascript html angularjs webpack angular-routing

我刚刚开始尝试使用 Webpack 来捆绑我的 Angular 应用程序。当我包含了必需品后,我收到以下错误

参数“fn”不是函数,而是字符串

我认为这与 Angular-Route 有关,但我找不到任何可以看到问题所在的内容。

我的精简文件如下:

./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 。此时紧抓救命稻草。

非常感谢。

最佳答案

在index.js中尝试删除“Config”和“Run”,因此这些行如下所示:

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

错误表明第一个参数需要是函数而不是字符串:)

关于javascript - “fn”不是 Angular 和 Webpack 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37924820/

相关文章:

javascript - 如果条件未触发

angularjs - 使用angularjs在ng-repeat中显示数组的数量

javascript - 具有 Modernizr 值的 Angular 表达式?

javascript - 在 Swift WKWebView 中捕获 window.postMessage

javascript - 返回 vanilla JS 中元素的 css 属性

javascript - 在 HTML5 Canvas 中缩放图像

javascript - Fullcalendar 3.x - 无法在事件拖动时获取模式中的数据

html - Chrome/GMail : should be 29px, 中奇怪的图像大小为 27.986px

html - ionic 列表项单击在另一个 HTML 页面中显示详细信息

javascript - jquery 在 body 更换时播放声音