Factory Service无法加载json文件

时间:2016-06-29 08:20:46

标签: javascript angularjs json

我有一个JSON文件data.json,与下面的文件位于同一文件夹中。当我运行它时,它会返回 not found

我还尝试将$http.get请求放入工厂,但结果相同 - 找不到。我也尝试按照其他地方的建议将.json扩展名更改为.txt,但这也没有用。

其余代码附带了角度种子项目。

是否有其他文件中缺少的内容或其他获取请求的技巧?

'use strict';

var myApp = angular.module('myApp.view1', ['ngRoute']);

myApp.config(['$routeProvider', function($routeProvider) {
  $routeProvider.when('/view1', {
    templateUrl: 'view1/view1.html',
    controller: 'View1Ctrl'
  });
}]);

myApp.controller('View1Ctrl', [

  '$scope',
  '$http',

  function($scope, $http) {
    $http.get('data.json')
    .then(function(res){
      $scope.quiz = res.data
    });
}]);

2 个答案:

答案 0 :(得分:2)

这是plnkr:https://plnkr.co/edit/Lf6QcyKSn4DsQrgJhUq6?p=preview

'use strict';

var app=angular.module('myApp.view1', [])


app.factory('mainInfo', 
  function($http) {
  var obj={};
    obj.method =function(){
       return $http.get('tag.json')

}
    return obj;
  })
app.controller('View1Ctrl', [

  '$scope',
  '$http',
  'mainInfo',

  function($scope, $http, mainInfo) {
    mainInfo.method().success(function(response) {
        $scope.myWelcome = response;
        debugger
    });
}]);

尝试将.json文件放在存在js的同一文件夹中。

答案 1 :(得分:0)

.json文件不能与js文件位于同一文件夹中。相对路径相对于包含index.html文件进行解析。如果你有这个结构:

+-index.html
|-folder
| \-data.json
\-js
  \-app.js

您必须在app.js中$http.get("folder/data.json")才能使其正常运行。