我正在努力了解如何使用工厂并努力了解一些事情。
我想将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
请您举例说明如何正确地做到这一点。
答案 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()