javascript - Uncaught Error : [$injector:modulerr] & Uncaught ReferenceError: app is not defined

标签 javascript html css angularjs angular-services

我正在使用 AngularJS 1.3.5,我正在尝试从 json 文件中获取信息。 这是我的代码: HTML 文件:

<!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.5/angular.min.js"></script>
<script src="js/controllers/MainController.js"></script>
<script src="js/services/myapp.js"></script>
<script src="js/app.js"></script>
<body ng-app="app">

<div ng-controller="MainController">

            
                <div ng-repeat="content in contents">
			

<a ng-href="{{data.FolderPath}}">{{data.FolderPath}}</a>
                
					
                    
                </div>
            
       
</div>
</body>
</html>

JavaScript 文件: 主 Controller .js

app.controller('MainController', ['$scope', 'myapp', function($scope, myapp) {
  myapp.success(function(data) {
    $scope.FolderPath = data;
  });
}]);

我的应用程序.js

app.factory('myapp', ['$http', function($http) { 
  return $http.get('C:\Users\nouri\Desktop\configFile.json') 
            .success(function(data) { 
              return data; 
            }) 
            .error(function(err) { 
              return err; 
            }); 
}]);

最后是 app.js

var app = angular.module('FolderApp', []);
我纠正了错误 hwoever 现在我有一个白屏所以我的代码没有读取我的 json 文件中的内容: { "文件夹路径": "C:\Users\nouri\Desktop\test" } 我该怎么办enter image description here

最佳答案

您的代码似乎有 2 个问题

  1. 加载脚本的顺序。加载 app.js,然后加载 services/myapp.js,然后加载 controllers/MainController.js。

        <script src="js/app.js"></script>
        <script src="js/services/myapp.js"></script>
        <script src="js/controllers/MainController.js"></script>

  2. 您的 Angular 模块的名称是 FolderApp,但您已将其引用为“app”。改成

        <body ng-app="FolderApp">

编辑
您使用工厂的方式存在问题。您应该返回一个对象,其中包含一个将调用 API 并返回 $http promise 的方法。尝试这样的事情:

工厂

app.factory('myapp', ['$http', function($http) { 
   return {
    getJson: function() {
       return $http.get('C:\Users\nouri\Desktop\configFile.json');
    }
  }
}]);

Controller

app.controller('MainController', ['$scope', 'myapp', function($scope, factory) {
  factory.callApi()
    .then(function(data) {
      $scope.FolderPath = data;
    });
}]);

看看这个fiddler .

关于javascript - Uncaught Error : [$injector:modulerr] & Uncaught ReferenceError: app is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36771265/

相关文章:

javascript - 自由职业者的翻转 Angular 代码是什么?

java - 如何让 ScriptEngine 运行多个 javascript 文件?

javascript - 即使控制台日志识别出具有长度的 Else if 语句也将运行

html - Flexbox( flex 方向 : column): wrapped child not positioned correctly when one child has fixed width

javascript - 滚动效果到一页网站的不同部分

javascript - 如何设置链接以检查带有变量名称、id、值的复选框

javascript - 关于如何与 Mongoose 创建关系的简单说明

Javascript - 获取未定义元素的宽度

html - 与 &lt;input type ="radio"> 一起使用的良好 HTML 和 CSS?

css - Bootstrap 错误?试图达到 15 个字符