Javascript Angular,创建工厂服务以获取本地JSON数据

Javascript Angular,创建工厂服务以获取本地JSON数据,javascript,json,angularjs,factory,Javascript,Json,Angularjs,Factory,是否有一种方法可以使用工厂服务发出get请求,以便在本地获取JSON数据?我有一个大文件,我需要从工厂获得,以便进行一些测试。如果没有涉及节点,可以使用严格的Angular,使用一个指令,类似这样的东西可能会有帮助 否则,您可以使用nodesfsmodule加载文件,将其加载到您的服务中,因此将此代码委托给新的服务文件。在这个服务上,如果你的逻辑是做脏活的,在那里调用readFile。将服务模块加载到应用程序中。通过您的作用域调用这些函数。e、 g.在readFile上 你真的不需要为此制作服务

是否有一种方法可以使用工厂服务发出get请求,以便在本地获取JSON数据?我有一个大文件,我需要从工厂获得,以便进行一些测试。

如果没有涉及节点,可以使用严格的Angular,使用一个指令,类似这样的东西可能会有帮助

否则,您可以使用nodes
fs
module加载文件,将其加载到您的服务中,因此将此代码委托给新的服务文件。在这个服务上,如果你的逻辑是做脏活的,在那里调用readFile。将服务模块加载到应用程序中。通过您的作用域调用这些函数。e、 g.在readFile上


你真的不需要为此制作服务,如果需要的话,你可以把它全部加载到app.js文件中,如果是临时文件之类的

使用$http服务从本地获取数据

工厂

 App.factory('getJSon',function('$http'){

        return{
           getjson : function(localJSONPath){
              return $http.get(localJSONPath) // path of the json file
           }
        }

    });
控制器

App.controller('myCtrl',function(getJSon){
    //uses service
    $scope.jsonPath = 'files/dataFile.json'
    $scope.jsonFile = getJson.getjson($scope.jsonPath); //returns promise
      jsonFile.then(function(data){

           //do things here
           console.log(data);
      })

})

当然,但你说的本地是什么意思?从硬盘到浏览器客户端,还是什么?我想说的是,您使用单独的服务进行调用,加载到该服务模块中,然后从您的作用域调用这些函数。你问的部分是这个吗?如果是的话,我可以向你提供更多的细节。是的,从硬盘上。我只是出于测试的目的才需要它。。你知道如何从app.controller加载服务吗?将其放入公用文件夹并读取文件。如果不想移动文件,另一种方法是使用nodejs。客户端会要求nodejs获取文件。Nodejs会读取文件并回答客户。@brianthomas正是这样。服务不应该很复杂。我只想将JSON数据传递给控制器中的数组。我相信这很简单,但是由于某种原因,我从来没有在本地完成过,总是会有一些东西弹出。这很容易,但是文件是在服务器本地的吗?如果是这样,那就太好了。将其作为服务抛出,通过作用域传递路径参数。@BrianThomas根据您的请求编辑了答案这当然是我的第一个解决方案,但一旦它开始返回“意外标记d”,我就放弃了它。@bltzrrr是您的JSON有效JSON。,再确认一下