2014-10-06 2 views
0

각도 앱을 프로그래밍하는 데 최선을 다하고 있습니다. 빈 배열을 객체로 푸는 데 문제가 있습니다.배열을 JSON Object, Javascript로 푸시

나는 오류 얻을 :

TypeError: Cannot read property 'push' of undefined

을 내가 가지고 다음과 같습니다 항목라는 개체 : 나는 다른 배열을 포함 할 수있는 객체로 하늘의 배열을 밀어 싶습니다

Object 

{ 
    "Name": "name", 
    "Description": "description" 
} 

. 이 같은.

Object 

{ 
    "Name": "name", 
    "Description": "description", 
    "Related Items": { 
        Item1:{...}, 
        Item2:{...}, 
        ... 
        } 
} 

내 컨트롤러는 호출 할 때이 작업을 수행합니다

$scope.push = function() { 
    $scope.item.push({"Related Items":[]}); 
}; 

나는 내가 JSON 개체 및 배열에 대한 간단한 뭔가 혼합 점점해야 알아,하지만 난 찾을 수가 없습니다 해결책.

고마워요! Related Items 실제로 아니라 배열 이상 등 키 이름 Item1와 객체처럼 보이는 위, 그러나

$scope.item["Related Items"] = []; 
$scope.item["Related Items"].push({}); 

: item 이후

답변

2

개체, 당신은 단지 Related Items 속성을 설정할 수 있습니다.

$scope.item["Related Items"] = {}; 
$scope.item["Related Items"].Item1 = {}; 
0

자바 스크립트의 push 함수는 값을 배열로 푸시 할 때만 작동합니다. 객체로 푸시하려고하면 작동하지 않고, 존재하지 않는 "푸시"키를 호출하려고 시도합니다. 그것이 당신이 받고있는 오류를 얻는 이유입니다.

$scope.item이 배열 ([] 또는 new Array)인지 확인한 다음 원하는 값으로 누릅니다.

$scope.item = []; 
$scope.push = function() { 
    $scope.item.push({"Related Items":[]}); 
}; 

Here's W3School의 .push() 메소드의 설명.

0

항목 객체가 있어야한다 { .... "관련 항목"< "어떤 값"> .... } 같은

그것은 이미 키가 있어야합니다.