使用角度工厂将json文件加载到template.html有困难

时间:2014-09-09 06:04:13

标签: json angularjs fetch factory

我正在努力了解如何使用工厂并努力了解一些事情。

我想将json文件加载到模板中但是我正在进入墙壁

myApp.factory('getUsersFactory',['$http',function($http){
   return {
     getUsers: function(callback){
       $http({method: 'JSONP', url: "users.json?query=?callback=JSON_CALLBACK&query="+ $scope.searchString}).success(callback);
     }
   }
}]);

myApp.factory('Tester', function($resource) {
  return $resource('users.json');
});

myApp.controller('PersonCtrl', function ($scope, Tester, getUsersFactory) {

  // Teens are from static json file
  $scope.users = Tester.query();

  // Adults are from REST API
  $scope.teens = getUsersFactory.query();

});

如果您查看我的示例,您将看到我正在尝试从users.json文件内容加载到main.html

我希望能够将多个json文件加载到main.html

PLUNKER example here

请您举例说明如何正确地做到这一点。

1 个答案:

答案 0 :(得分:0)

  • 您需要更改getUsersFactory工厂,因为您没有$scope

    myApp.factory(' getUsersFactory' [' $ HTTP',函数($ HTTP){    返回{      getUsers:function(searchStr,callback){        $ http({方法:' JSONP',网址:" users.json?query =?callback = JSON_CALLBACK& query =" + searchStr})。success(callback);      }    } }]);

如您所见,我又添加了一个参数 - searchStr

  • 您需要调用工厂getUsers()的函数getUsersFactory。实际上问题是:您的工厂query()中未定义函数getUsersFactory。 实际上即使拨打
    $scope.teens = getUsersFactory.getUsers(); - 没有参数,似乎也能正常工作。

所以,回答你的问题 - 使用你定义的工厂功能:getUsersFactory.getUsers()

更改了plunk:http://plnkr.co/edit/xIzd8Zyg0hzMgbPCzEfj?p=preview