2014-10-17 3 views
1

내 샘플의 angularjs 표에 selectedItem이 제대로 표시되지 않는 이유는 무엇입니까? 즉, selectedItems를 참조하려고 할 때마다 "정의되지 않음"을 얻습니다. Chrome과 IE에서 동일한 결과를 보았습니다.Angularjs grid selectedItems는 항상 undefined를 반환합니까?

나는 앵글 그리드 페이지의 "기본"예제 인 plnkr을 만들어서 선택한 항목을 보여주고 보여줄 수있는 약간의 자바 스크립트가 추가되었습니다. plnkr : http://plnkr.co/edit/wPnMGQOzKSOTdeaAjoB8?p=preview

와 관계있는 코드 : 선택한 항목을 평가하려고 할 때

$scope.gridOptions = { 
     data: 'myData', 
     selectedItems: $scope.mySelections, 
     afterSelectionChange: function (row, event) { 
        if (row.selected) { 
         alert('Items selected ' + $scope.mySelections); 
         alert('Items selected ' + $scope.gridOptions.selectedItems) 
        } 
       } 

    }; 

나는 $ scope.mySelections 또는 직접 그리드를 통해 중, "정의되지 않은"얻을. 나는 "디버거"를 넣었다. "if"에 줄을 긋고 값을 확인하십시오 - 그리드에 selectedItems 속성이없는 것 같습니까?

(편집 :. 코드 블록에서 **을 제거 여기에 굵은 코드 수 없습니다 잊어 버렸) 당신은 당신의 $scope.mySelections 속성을 초기화하는 것을 잊었다

답변

3

. 이 때문에 그 값을 인쇄 할 때마다 undefined이됩니다.

plnkr을 확인하십시오.

물론 [Object object]에 각각에 대해 경고하지만 이는 개체를 어떻게 인쇄 할 것인가에 달려 있습니다.

보다 현명한 방법으로 개체에 경고를 보내려면 this plnkr과 같은 작업을 수행 할 수 있습니다.

+0

Ah dern - 매회 이니셜 라이저를 놓쳤습니다. selectedItems가 유효한 배열을 자동으로 설정했다고 가정했습니다. 수정 해 주셔서 감사합니다! 그리고 또한 - 첫 번째 plnkr에 남아있는 테스트 코드가있는 것 같습니다. - 인덱스를 설정하고 선택한 행의 .push()를 수동으로 수행했습니다. 내가 수동으로 밀어 넣기/줄을 spliced ​​selectedItems 할 줄 알았는데 잠깐 혼란스러워했다 :)하지만 모든 좋은! –

+0

네가 맞다. 쓰레기통이 남겨졌다. 이제 해결되었습니다. –

관련 문제