Angular Resources Service를 통한 JSON 읽기
사용방법angular-resources.js
서비스를 통해 JSON 파일을 읽는 것?
저는 테스트 목적으로 아주 기본적인 Angular 앱을 작업하고 있으며 지금 JSON 파일에서 데이터를 읽으려고 하고 있습니다.서버 기반 데이터 스토어를 이동할 때 더 쉽게 교체할 수 있도록 이 코드를 서비스에 배치합니다.
나의App
그리고.App.controller
선언문은 다음과 같습니다.
'use strict';
// create module for custom directives
var App = angular.module('App', ['jsonService']);
// controller business logic
App.controller('AppCtrl', function AppCtrl($scope, JsonService) {
console.log("marker 1");
if (!$scope.jsonData) {
console.log("marker 2");
JsonService.getData(function (d) {
console.log(d);
$scope.jsonData = d;
$scope.records = d.length;
});
} else {
console.log("I have data already... " + $scope.jsonData);
}
console.log($scope.jsonData);
});
나의JsonService
현재 다음과 같이 정의됩니다.
'use strict';
angular.module('jsonService', ['ngResource'])
.factory('JsonService', function($resource, $filter) {
// define the remote service using Angular's $resource module
var service = $resource('/data/ProcessModeling-Resources.json', {});
var JsonService = {
// calls $resource.query() to retrieve the remote data.
getData : function getData(callback) {
console.log("marker 3");
service.query(function (data) {
console.log("marker 4");
});
}
};
return JsonService;
});
콘솔 출력은 다음과 같습니다.
marker 1 app.js:8
marker 2 app.js:11
marker 3 services.js:13
undefined app.js:21
TypeError: Object #<Resource> has no method 'push'
at copy (http://127.0.0.1:8000/lib/angular.js:556:21)
at new Resource (http://127.0.0.1:8000/lib/angular-resource.js:330:9)
at http://127.0.0.1:8000/lib/angular-resource.js:386:32
at forEach (http://127.0.0.1:8000/lib/angular.js:117:20)
at http://127.0.0.1:8000/lib/angular-resource.js:385:19
at wrappedCallback (http://127.0.0.1:8000/lib/angular.js:6650:59)
at http://127.0.0.1:8000/lib/angular.js:6687:26
at Object.Scope.$eval (http://127.0.0.1:8000/lib/angular.js:7840:28)
at Object.Scope.$digest (http://127.0.0.1:8000/lib/angular.js:7707:25)
at Object.Scope.$apply (http://127.0.0.1:8000/lib/angular.js:7926:24) angular.js:5582
전화를 걸려고 할 때 오류가 발생합니다.service.query(function (data) { }
, 내 JSON 파일을 꺼내야 하는 것입니다.
앵귤러를 계속 써왔습니다.데이터를 끌어오기 위한 예로 JS Cats App을 들 수 있습니다.
@pkozlowski의 조언을 따르고 응답이 배열인지 확인하겠습니다.어쨌든 여기 댓글에 설명한 것과 유사한 JSON 파일에서 데이터를 로드하는 예가 있습니다.ngResource를 사용하며 http://plnkr.co/edit/Ofq7Md8udEnIhAPF1NgL?p=preview 을 통해 여러 가지 정보를 통합할 수 있습니다.
서비스를
angular.module('jsonService', ['ngResource'])
.factory('JsonService', function($resource) {
return $resource('cats.json',{ }, {
getData: {method:'GET', isArray: false}
});
});
주의하세요.isArray
로 설정됩니다.false
.
앱과 컨트롤러
var app = angular.module('app', ['jsonService']);
app.controller('ctrl', function($scope, JsonService){
JsonService.getData(function(data){
$scope.name = data.name;
$scope.children = data.children;
});
});
getData
리소스 클래스는 당신에게 다음과 같은 유용한 편의 방법을 제공하기 때문에 실제로 필요하지 않습니다.get
, 그냥 이렇게 하면 됩니다.
angular.module('jsonService', ['ngResource'])
.factory('JsonService', function($resource) {
return $resource('cats.json');
});
app.controller('ctrl', function($scope, JsonService){
JsonService.get(function(data){
$scope.name = data.name;
$scope.children = data.children;
});
});
언급URL : https://stackoverflow.com/questions/13849902/reading-in-json-through-angular-resources-service
'programing' 카테고리의 다른 글
스위프트의 C++ 클래스와 교류 (0) | 2023.10.27 |
---|---|
워드프레스 = 강력한 결합에서 디스크를 전통적인 포럼으로 활용하기 (0) | 2023.10.27 |
ORA-22275 오류: 잘못된 LOB 로케이터가 지정되었습니다. (0) | 2023.10.27 |
Python에서의 프로세스간 통신 (0) | 2023.10.27 |
docker- compose mysql 컨테이너에서 워드프레스 컨테이너에 대한 액세스를 거부함 (0) | 2023.10.27 |