2013-12-20 3 views
1

나는이 문제를 완전히 해결하지 못했습니다. 모든 것이 잘 작동합니다 (또는 지금은 충분합니다). 그리고 필요한 것은 non-json 형식으로 공장에서 데이터를 다시 가져 오는 것입니다. 나는 모든 세부 사항을 가진 semi-working plunker을 가지고있다.angularjs 팩토리에서 객체 속성 검색

기본적으로 첫 번째 페이지 (Ctrl 컨트롤러 아래)는 사용자가 여러 상자를 확인할 수있는 곳입니다. 또한 옵션 세트 사이에 스위치가 있습니다 (실제보다 훨씬 더 큰 목록). 따라서 checkboxFactory는 사용자의 선택을 유지합니다. 사용자가 다음 페이지 (또는 그것을 위조하여 선고 자의 "다음 페이지")로 이동하면 사용자는 그들이 선택한 것을 볼 수 있습니다. 그런 다음이 선택 사항은 json 포스트에서 서버로 되돌아갑니다. 나는 사용자 친화적 인 이름을 보여줄 필요가 있지만, 서버에 대한 id #를 선택해야한다.

원본 체크 박스 ng-repeat에 value = "{item.name}}"을 입력하면 모든 것이 정상입니다. 사실을 제외하고 나는 이름을 가진 공장을 가지고 있으며 서버가 요구하는 ID는 가지고 있지 않다. 이론적으로 각 선택을 객체로 추가하고 필요에 따라 두 번째 페이지에서 속성을 추출 할 수있을 때 공장에서 두 번째 배열 (선택된 이름에 대해 하나, 해당하는 선택된 ID에 대해 하나)을 사용하면 과도한 것처럼 보입니다.

실제로는 작동하지 않습니다. 여기에 내가 공장 에코 경우 선택을 만든 후 내가 무엇을 얻을 :

[ "{\"id\":1,\"name\":\"Firstplace\"}", "{\"id\":2,\"name\":\"Second place\"}" ] 

... 난 잘 모르겠지만, 따옴표 단지 내부에 있기 때문에 그 백 슬래시는 문자열로 모든 선택을 돌려 것 같다 대괄호 스크립트에서 54 행 편집을 시도했지만 오류가 발생합니다. 그것은 싫어 :

html 쪽에서 그것은 ng-repeat에서 시도한 유사본을 좋아하지 않습니다. 모든 악몽의 근원 인 것처럼 보이는 것은 변형 된 json을 만드는 것입니다. 이다 {{항목}} 그리고 당연히 꽤 추한 작동

{{item}} 
{{item.name}} 
{{item.item.name}} 

유일한 사람 : 나는이 두 번째 페이지/출력 모두를 시도했습니다. 누구든지 전에 이것에 부딪쳐 왔고, 이것을 고치는 방법에 대한 어떤 힌트가 있습니까? 미리 감사드립니다.

답변

1

@을 사용하면 개체가 문자열로 바뀌므로 대신 item 개체에 대한 참조를 사용하고 =을 사용해야합니다.

변경 {{item}}에 대한 참조처럼 item :

<input type="checkbox" name="group1" value="item" ng-model="isChecked" checkbox-list='checkedCity' /> 

지시어 사용 =에서 :

scope: { 
    list: '=checkboxList', 
    value: '=' 
}, 

updated plunker

+0

를 참조 나는 그것이라고 기쁨에 춤을인지 확실하지 않다 너무 쉽게, 또는 부끄러움에 내 머리를 걸어 @ 세부 사항을 완전히 누락. 많은 많은 감사합니다! – kl02

관련 문제