我无法获得角度来接受我的自定义服务,该服务位于单独的文件中。我知道这已经遍布堆栈溢出,但我无法分辨出我在哪里弄乱。
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)
我只包含了每个文件的开头,所以你们不必花费大量的代码。我搞砸了哪里?
谢谢!
答案 0 :(得分:0)
通过从第二个文件调用angular.module(“angularApp”),您将重新创建一个角度模块,而不是获取对前一个文件中创建的模块的引用。
有几种方法可以解决这个问题。最简单的一个(在我的观点上)是将你的角应用设置为一个窗口.VARIABLE。
window.myApp = angular.module("angularApp", ["ui.codemirror","ui.bootstrap", "ngSanitize", "ngRoute"]);
然后,您可以从第二个文件:
var myApp = window.myApp;
myApp.service("clearCodemirror", function(cm){
有更好的方法可以做到这一点。但是,这个你让你去。干杯!
答案 1 :(得分:0)
您好,您不是通过var myApp = angular.module(“angularApp”)创建您获得现有模块的模块; 正如文件所述: - https://docs.angularjs.org/api/ng/function/angular.module
传递两个或多个参数时,会创建一个新模块。如果只传递一个参数,则检索现有模块(作为模块的第一个参数传递的名称)。
我试过1.3.14,我没有得到任何错误,你正在使用哪个版本: -