0

을 노력하고 내가 data.result 같은 값 somethng을 가지고 나는, .MAP() knockout.js의 방법은 myVM.js에서

this.accountMessages = ko.observableArray(); 
this.accountMessages.map(data.result, models.AccountMessage); 

아래 같은 코드를 알고 싶어요

"result":[{"sku":"VINU","name":"22 inch Wide LCD Display L2208w","price":"224.5","qty":"1"},{"sku":"NADVB#WW","name":"Elite Model","price":"345.5","qty":"2"},{"sku":"NADVB#WWW","name":"Elite Model Laptop","price":"33.5","qty":"2"}] 

및 myModel.js에서,

myPage.gsp

에서 마지막으로
(function (models) { 
    function AccountMessage(data, self) { 
     data = data || {}; 
     this.sku= ko.observable(data.sku); 
     this.name= ko.observable(data.name); 
     this.price= ko.observable(data.price); 
     this.qty = ko.observable(data.qty); 
     //some code goes here 

    models.AccountMessage = AccountMessage; 
}(models = window.hpelite.models)); 

<tbody data-bind="foreach: accountMessages">  
    <tr> 
     <td class="ellipsis" data-bind ="text:sku"></td> 
     <td class="ellipsis" data-bind ="text:name"></td> 
</tr> 
</tbody> 

이 코드는 잘 작동하므로 위에서 설명한 .map (arg1, arg2)의 작동 방식을 알고 싶습니다. Google에서이 방법을 검색했지만 아무것도 얻지 못했습니다. 아무도이 방법이 어떻게 작동하는지 자세히 설명해 주시겠습니까

+2

Chrome의 디버깅 도구를 활용하여 단계별로 실행하는 것이 좋습니다. –

+0

kncokout observableArray에는'map' 메소드가 없습니다. 위의 코드가 실제로 작동하는 경우 일부 타사 플러그 인을 사용해야합니다. 의존성을 확인하십시오! 또는 JsFiddle에 작업 repro를 제공하십시오! – nemesv

답변

0

KnockoutJS 라이브러리와 핵심 JavaScript 라이브러리 사이에 약간의 혼란이있을 수 있습니다. JavaScript에서 Array 프로토 타입의 한 가지 메소드는 map입니다. map의 첫 번째 인수는 콜백 함수 여야합니다. 선택적 두 번째 인수는 콜백에 대한 인수가됩니다. 모질라는 철저한 토론을 가졌습니다. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

당신이 보여주는 코드의 저자는 인자의 순서가 바뀌어 보이는 다른, 아마도 까다로운 방법으로지도를 사용하는 것처럼 보입니다. 아마도 다른 사용자가 분명히 할 수 있습니다.