我正在使用 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', []);
最佳答案
您的代码似乎有 2 个问题
加载脚本的顺序。加载 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>
您的 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/