簡體   English   中英

如何在Angular中手動聲明和使用模塊,控制器,服務和引導程序?

[英]How to declare and use modules, controllers, services and bootstrap manually in Angular?

我正在嘗試構建一個具有一個控制器,一個服務並且手動進行Bootstrap的AngularJS應用(無ng-app )。 問題是我一直出錯:

參數'AppController'不是一個函數,得到了字符串

的HTML

<!DOCTYPE HTML>
<html xmlns:ng="http://angularjs.org">
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0-rc.0/angular.min.js" type="text/javascript"></script>
        <script src="inc/bootstrap.js" type="text/javascript"></script>
        <script src="inc/controllers.js" type="text/javascript"></script>
        <script src="inc/services.js" type="text/javascript"></script>
    </head>
    <body ng-controller="AppController">
        [...]
    </body>
</html>

bootstrap.js

angular.element(document).ready(function() {
    angular.bootstrap(document, ['htmlControllerApp']);
});

controllers.js

angular.module('htmlControllerApp', [])
.controller('AppController', 'ConnectionService', ['$scope', function ($scope, ConnectionService) {
    // Code
}]);

services.js

angular.module('htmlControllerApp')
.factory('ConnectionService', ['$rootScope', function ($rootScope) {
    // Code
}]);

謝謝


編輯-解決方案

controllers.js中 ,改用:

angular.module('htmlControllerApp')
.controller('AppController', ['$scope', 'ConnectionService', function ($scope, ConnectionService) {
    // Code
}]);

bootstrap.js中 ,作為“良好實踐”:

angular.module('htmlControllerApp', []);
angular.element(document).ready(function() {
    angular.bootstrap(document, ['htmlControllerApp']);
});

這將在bootstrap.js中創建模塊一次,AngularJS將嘗試在controllers.jsservices.js中檢索它。

這是您要查找的頁面。

https://docs.angularjs.org/api/ng/function/angular.bootstrap

並改變這個

angular.module('htmlControllerApp', [])
  .controller('AppController', 'ConnectionService', ['$scope', function ($scope,     ConnectionService) {
    // Code
}]);

對此->

angular.module('htmlControllerApp', [])
  .controller('AppController', ['$scope', 'ConnectionService', function ($scope, ConnectionService) {
    // Code
}]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM