[英]Angular JS Injecting Custom Service
我無法接受我的自定義服務,該服務位於單獨的文件中。 我知道這完全是堆棧溢出,但是我無法分辨我在哪里搞砸了。
HTML:
<!DOCTYPE html>
<html lang="en" ng-app="angularApp">
<head>
<!-- ANGULAR -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.2/angular-sanitize.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.9/angular-route.js"></script>
<link href="styles/angularApp.css" rel="stylesheet">
<script src="scripts/controllers/angularApp.js"></script>
<script src ="scripts/services/clearCodemirror.js"></script>
主角度javascript文件(包含我的控制器)
var myApp = angular.module("angularApp", ["ui.codemirror","ui.bootstrap", "ngSanitize", "ngRoute"]);
myApp.controller("mainController", ["$scope", "$timeout", "clearCodemirror", function($scope, $timeout, clearCodemirror){
我嘗試注入的服務:
var myApp = angular.module("angularApp");
myApp.service("clearCodemirror", function(cm){
我不斷得到的錯誤:
Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.2.6/$injector/modulerr?p0=angularApp&p1=Error…oogleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.6%2Fangular.min.js%3A29%3A56)
我只列出了每個文件的開頭,因此你們不必遍歷大量代碼。 我在哪里搞砸?
謝謝!
通過從第二個文件調用angular.module(“ angularApp”),您將重新創建一個angular模塊,而未獲得對在先前文件中創建的模塊的引用。
有幾種解決方法。 從我的角度來看,最簡單的方法是將您的角度應用程序設置為window.VARIABLE。
window.myApp = angular.module("angularApp", ["ui.codemirror","ui.bootstrap", "ngSanitize", "ngRoute"]);
然后,從第二個文件中,您可以:
var myApp = window.myApp;
myApp.service("clearCodemirror", function(cm){
有更好的方法可以做到這一點。 但是,這一步就可以開始。 干杯!
嗨,您沒有重新創建模塊,而是通過var myApp = angular.module(“ angularApp”);獲取現有模塊。 如文檔所述:-https: //docs.angularjs.org/api/ng/function/angular.module
當傳遞兩個或多個參數時,將創建一個新模塊。 如果僅傳遞一個參數,則將檢索現有模塊(作為第一個參數傳遞給模塊的名稱)。
我嘗試使用1.3.14,但沒有任何錯誤,您使用的是哪個版本:-
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.