角应用程序名称没有确定(Angular application name not identifie

2019-11-04 03:43发布

我尝试使用下面的示例代码来定义DB访问一家工厂:

    MyApp.service("DB_Services", [ "$http" , function($http) {

        DB_Services.Get_Data_from_DB_Internal = function (p_Request) {

            var http = new XMLHttpRequest();
            var url  = "http://localhost/servlet/Test_ui";
            var params = "data=" + p_Request ;
            http.open("POST", url, true);

            //Send the proper header information along with the request
            http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

            if(http.readyState == 4 && http.status == 200) {
                    return http.responseText ;
                }
        }
        http.send(params);    


        return DB_Services ;
    }]);

我要补充的是这段代码被部署在其以列出一个单独的文件<script src=...>中的index.html内条目。

在加载时(以及任何使用它之前!),我得到以下错误(Chorme的控制台):未捕获的ReferenceError:未定义MyApp的。

当然,MyApp的是在所有的控制器使用了同样的名字,所以不存在拼写错误。

此外,如果我改变“MyApp的”别的东西,说:“测试名”,我得到了同样的错误,只是这次没有定义什么是测试名称。

想不通的语法错误是什么。

任何想法将不胜感激。

Answer 1:

这个答案是根据你这样引导您的角度应用的假设(如angular.module('myApp')在一个单独<script>在您的index.html文件

检查你的订单<script>文件

你需要确保你的初始角度设置代码之前任何其他角度出现<script>秒。

<head>
    .....
    <script>
         var myApp = angular.module('myApp', [])
    </script>

    <script src="otherNg.js">
    <script src="anotherNg.js">

一定要引用您的模块中的其他<script>文件正确

为了正确地添加额外的构建你的myApp模块,您需要确保正确地访问它。 因为它是在另一个文件中定义的,你需要使用下面的语法来访问它:

 var myApp = angular.module('myApp')
 .service("DB_Services", [ .... ])

请注意,这个代码不包括数组的第二个参数...这是因为这是获得已定义模块的getter语法。



Answer 2:

确保引用模块中的脚本文件

var MyApp = angular.module('MyApp');
MyApp.service(...);

这是不同的,当你最初定义模块

angular.module('MyApp',[]);

从以往的经验,这是不依赖于你的.html的脚本文件,例如量级:

<script src="javascripts/services/DB_Services.js"></script>
<script src="javascripts/app.js"></script>

就好,只要你引用模块中的DB_Services.js脚本这将工作。 角会做数学题!



文章来源: Angular application name not identified