REST API에서 가져온 JSON 배열이 있습니다. Knockout 매핑 플러그인을 사용하여 배열을 처리하고 JSON을 사전 설정된 양식 값으로로드합니다 (이전에 양식에 값을 추가 한 경우 - 녹아웃 배열을 테스트하기위한 데이터가 있음). 양식은 기본적으로 div 블록을 입력으로 추가하거나 삭제하므로 사용자는 "업무"경험을 추가/삭제할 수 있습니다.녹아웃 매핑 플러그인 - 캡처 배열 값
제 문제는 플러그인이 배열을 매핑하는 방법을 해독하려고하는 것입니다. 배열에서 행의 특정 값 (ID)을 찾으려고합니다. 변수로 추가하여 특정 행을 삭제하도록 API에 알릴 수 있습니다. 명시 적으로 html의 행 값을 출력하도록 Knockout을 얻을 수는 있지만 그렇지 않으면 캡처하는 방법을 알 수 없습니다. "foreach"템플릿에서 "remove :"를 참조하는 버튼이 있는데, 그 위치에서 배열의 값을 캡처하려고합니다. 문제 개체하지
가이것은 "작업"의 두 개의 행을 출력한다 : 다음 HTML 예를 들면
는
<span data-bind="text: ko.mapping.toJSON(workModel.work())"></span>
[{"id":"1","schoolID":"2","place":"","position":"Science Teacher","description":"I worked at ASD for 1 year as a Science teacher.","start":"2011","end":"2012","profileID":"91"},{"id":"2","schoolID":"1","place":"American School of Taiwan","position":"Science Guy","description":"I was just another science guy","start":"2008","end":"2011","profileID":"91"}]
이 배열에서 1 행 항목의 ID를 출력한다 :
<span data-bind="text: ko.mapping.toJSON(workModel.work()[0].id)"></span>
"1"
그러나 자바 스크립트에서 , 당신은 foreach는 템플릿에 의해 생성 된 제거 버튼을 클릭하면 ...
,gone = function(work) {
alert(ko.mapping.toJSON(workModel.work(this).id));
}
Firebug에서이 오류가 발생하고 방금 클릭 한 템플릿 블록이 다시로드되고 삭제됩니다. 내가 명시 적 문 위의 경고 교체 할 경우
Unable to parse bindings. Message: TypeError: workModel.work()[0] is undefined; Bindings value: text: ko.mapping.toJSON(workModel.work()[0].id)
는 비록 :
gone = function(work) {
alert(ko.mapping.toJSON(workModel.work()[0].id));
}
을 다시 "1"의 정확한 값을 얻을. 코드의 "이"측면과 관련이 있다는 것을 알고 있지만 배열에서 특정 값을 캡처 할 수 있도록 매핑 플러그인이 무엇을하는지 확신 할 수 없습니까? 어떤 도움이라도 대단히 감사하겠습니다.
죄송합니다. 시도해 보지 않으 셨습니다. 만약 내가 단순한 'alert (self.workModel.work(). length);' 모든 배열에 대해 올바른 값을 얻습니다. 내가 얻을 수없는 유일한 가치입니다. – user1557966
더 많은 코드를 게시해야합니다. 더 완벽한 마크 업과 자바 스크립트를 게시하십시오. –