2013-12-19 2 views
0

내보기 모델에서 배열을 업데이트하는 다음 코드가 있습니다.녹아웃 ForEach 및 관찰 가능한 배열

self.notesTable = ko.observableArray(); 

self.SelectedCustomer.subscribe(function() { 
    var x = document.getElementById('customerselect').value; 

    if (x != "Select A Customer") { 

     var notes = GetNotes(x); 

     console.log("notes ="); 
     console.log(notes); 

     self.notesTable(notes); 
     console.log(self.notesTable()); 



     } 
}); 


<tbody data-bind="foreach: notesTable" > 
         <tr> 
          <td data-bind="text: Note_Number"></td> 

내 HTML에는 위의 각 문구가 있습니다. 내 문제는 제가 notesTable을 기록 할 때 다음과 같은 것을 보여줍니다. 하지만 각각에 대한 업데이 트에 실패하고 노트 번호가 정의되어 있지 않니?

[Array[7]] 
0: Array[7] 
0: Object 
Note_Date: "7/31/2008 12:00:00 AM" 
Note_Number: "27753" 
Note_Resolved: "True" 
Note_Resolved_Date: "4/14/2009 12:00:00 AM" 
Note_Text: "SENT INVOICE COPIES TO MARTY 7/8/08" 
Note_Time: "11:17:23" 
Note_User: "RUSSA 
+0

형식을 지정하면 더 명확합니다. 당신은 7 개의 아이템으로 보이는 배열을 가지고 있는데, 첫 번째 배열은 7 개의 아이템을 가진 배열로 보여줍니다. 데이터 구조가 방해 받고 있습니다. –

+0

'GetNotes'는 실제로 무엇을 반환합니까? 그리고 당신이 "log notesTable"할 때'console.log (notesTable)'또는'console.log (notesTable())'하고 있습니까? –

+0

그래, 내 GetNotes 함수에서 실제로 배열 내부에 배열을 구축하고 있었다. 나는 그것을 고정 시켰고 그것은 매력처럼 일하고있다. 고마워요! – user3062114

답변

0

정말 성공을위한 설정이 아닙니다. 객체 배열을 가진 배열이 있습니다. 객체를 관찰 가능 객체로 밀어 넣기 위해 루프를 실행해야합니다. 그렇지 않으면 배열 [0] [0]을보고 그 객체 내부를 조사해야합니다.

나는 첫 번째 배열에서 모든 것을 꺼내 관찰 대상에 넣는 것이 좋습니다.

이 모든 것을 함께 접근하는 더 좋은 방법이 있을지 모르지만 나는 그것에 대해 정말로 생각하지 않았습니다. 바로 문제를 대답하는 것입니다.

+0

네 말이 맞아. 내 GetNotes 함수 안에는 배열 내부에 배열 된 배열을 만들고있었습니다. 나는 그것을 고쳤다. 감사! – user3062114