내가 처음으로 각도 응용 프로그램을 구축하기 위해 노력하고있어 이상 반복을 통해 값이에 문제를 갖는
(function() {
var ItemController = function($scope, $routeParams, $log, foodFactory) {
var foodId = $routeParams.foodId;
$scope.food = [];
$scope.item;
function init() {
foodFactory.getFoods()
.success(function(foods) {
$scope.food = foods;
})
.error(function(data, status, headers, config) {
//handle error
});
}
init();
for (var i = 0, len = $scope.food.length; i < len; i++) {
if (foodId == $scope.food[i].id) {
$scope.item = $scope.food[i];
}
}
};
angular.module('paleoApp')
.controller('ItemController', ['$scope', '$routeParams', '$log', 'foodFactory', ItemController]);
})();
코드는 제대로 개체의 배열에 $ scope.food을 설정 foodFactory에 의해 JSON 파일에서 가져 왔으며 {{food}}를 사용할 때보기에도 배열이 제대로 표시됩니다. 배열 내에서 적절한 객체를 얻기 위해 $ scope.food를 반복하여 foodId와 일치하는 'id'속성을 가진 객체를 찾아 $ scope.item에 객체를 할당하려고했습니다. 그러나보기에는 {{item}}에 대한 내용이 표시되지 않습니다.
내가 뭘 잘못하고 있니?
감사합니다.
감사합니다. 나 한테 의미가있어. 불행히도, 그런 식으로 .then()을 사용하는 것을 허용하지 않습니다. 내가 원하는 결과를 얻은 $ timeout을 사용하여 작은 해결 방법을 만들었지 만 값이 싼 해킹처럼 느껴졌고 올바르게 수행하는 방법을 찾고 싶습니다. – jfsk22
저는 Angular의 $ http 서비스를 사용하여 JSON 파일을 가져 오는 것으로 가정합니다. init() 메소드를 변경하여 약속을 되돌려 놓았습니다 (이전에 그렇게하지 않았 음). [$ http] (https://docs.angularjs.org/api/ng/service/$http) 호출은 성공/오류 메서드로 약속을 반환합니다. 성공/오류 메서드는 모두 자신의 약속을 반환합니다. 체인 연결 용. 이 방법으로 .error를 호출하여 약속을 되돌릴 수 있으며 위의 예와 같이 연결할 수 있습니다. – wjohnsto