AngularJS + RequireJS应用程序从不运行控制器

时间:2017-11-03 07:32:39

标签: angularjs requirejs amd

编辑据我所知,通过进一步研究,AngularJS无法按照我希望的方式注入控制器代码。无论如何,我仍然感兴趣的是它为什么不起作用以及如何完成。

我一直在尝试创建自己的AngularJS + RequireJS项目种子,并且我遇到了app模块加载的问题(我在网络检查器中看到它们)但从未实际执行过。 因此,我已经将应用程序剥离到AngularJS库,并在RequireJS中处理了基本依赖项,我发现该应用程序正确加载了所有文件和模块,但顶层应用程序模块控制器(现在应用程序本身中唯一的模块,我在文档上的引导永远不会执行。使用ng-inspector我得出的结论是,还没有定义控制器范围。 控制台中没有任何错误,我可以确认的是app bootstraps正确并加载所有模块,但appController从未执行过。

这是appBootstrap.js的代码:

//requirejs config
require.config({
    baseUrl: '/',
    paths: {
        'lib' : 'scripts/lib/',
        'angular' : 'vendor/angular/angular.min'
    },
    shim: {
        'angular': {
            exports: 'angular'
        }
    }
});
//the actual app bootstrapping
require(['lib/appVendorLibs'], function(){
    require([
        'lib/appModule'
    ], function(appModule) {
        angular.bootstrap(document, [appModule.name]);
    });
});

这是appVendorLibs.js:

define([
    'angular'
], function() {});

这是我为了测试失败的控制器执行而提出的准系统appModule.js:

define([
    'angular',
    'lib/appController'
], function(angular, appController) {
    var app = angular.module('app', []);
    app.controller('appController', appController);
    return app;
});

这是appController.js:

define([], function() {
    var appController = function($scope, $rootScope){
        $rootScope.aTestVar = "OK";
        $scope.testObject = {};
        $scope.testObject.text = "OK";
        console.log("OK");
    };

    return ['$scope', '$rootScope', appController];
});

永远不会发生console.log()次调用,引用$rootScope$scope的行也不做任何事情。 另外,我的ng-bindindex.html应该显示testObject.text变量,但这种情况从未发生过。

的index.html:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <link rel="stylesheet" href="/styles/styles.css"/>
        <title>AngularJS Module Loading Seed</title>
        <base href="/">
    </head>
    <body>
       <!-- Main Content Container -->
       <p ng-bind="testObject.text"></p>
       <script src="/vendor/requirejs/require.js" data-main="/scripts/lib/appBootstrap.js"></script>
    </body>
</html>

这可能是什么问题?

0 个答案:

没有答案