2014-04-04 7 views
-1

계산 된 값을 가져 와서이 값을 관측 가능한 배열에 푸시하려고합니다. 단순한 값을 반환하는 웹 API 컨트롤러 - json 랩없이 순수한 숫자. 이것은 문제 일 수 있습니다. 내가 넉 아웃에 초보자로서 조언을주십시오. 오후 8시 30 분 P.S. 다른 api의 컨트롤러를 호출하기 때문에 두 가지 아약스 호출이 있습니다.Knockout.js 관측 가능 배열에 대한 관측 가능치가 계산 됨

function GrafikViewModel(grafikUri) { 
      var self = this; 
      self.books = ko.observableArray(); 
      self.PaxLeft = ko.computed(function() { 
       ko.utils.arrayForEach(self.books(), function (book) { 
        $.getJSON("/api/orders/getpax/" + book.kodg, function (item) { 
         self.books().push(item); 
        }); 
       }, GrafikViewModel) 
      }); 
      $.getJSON(grafikUri, function (data) { 
       self.books(data.$values); 
      }); 
     } 
+0

당신은이 부작용으로 계산하려면 아래 http://knockoutjs.com/documentation/observableArrays.html#manipulating-an-observablearray에서 (섹션의 "observableArray 조작을")에 대한 두 페이지를 모든 "미러링"기능의 목록을 찾을 수 있습니까? 확실합니까? BTW에서는 여기서 순환 의존성을 만들었습니다. 계산식은 '책'을 변경하고 '책'의 변경 사항에 반응합니다. 당신이 잘못된 길을 가고 있다고 생각합니다. 실제로 무엇을하려고하는지 설명하십시오. – Tomalak

+0

부작용의 의미는 무엇입니까? 당신이 옳은 순환 의존성에 대해서. 나는 그것을 자기가되도록 바꿔야 만한다 .PaxLeft (이것은 ko.observable이다)? 실제로 내 목표는 두 개의 다른 컨트롤러에서 데이터를 가져와 togeyther 동일한 observableArray에 넣어. –

+0

첫 번째 아약스 전화에 대해 생각하고 있습니다. 제어기가 순수한 정수 값을 반환하는 문제가 될 수 있습니까? –

답변

0

나는 약간의 추측 작업을해야하지만, 난 당신이 원하는 것은

self.books.push(item); 

대신

() 누락
self.books().push(item); 

참고 믿습니다. 녹아웃 관측 가능 배열은 배열의 기능 대부분을 "반영"합니다. Array에 의해 제공되는 것 대신 이들을 사용하여 녹아웃은 래핑 된 배열에서 일어나는 변화를 추적 할 수 있습니다.

편집 : 당신은

+0

나는 바뀌었지만 이것이 도움이되지 못했다. –

관련 문제