[英]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.