2012-10-20 2 views
1

녹아웃 모델을 기반으로 동위 원소보기를 재설정/새로 고침/다시로드하는 데 어려움이 있습니다. 나는 항목을 제거하고 대체하기 위해 이전 바이올린을 확장했지만 신뢰할 수 없으며 정렬을 나누었습니다.동위 원소 및 녹아웃 배치 재설정

self.reset = function() { 
     // Remove all services 
     $.each(self.services(), function (index, value) { 
      var serviceToDelete = self.services()[0] 
      self.removeService(serviceToDelete); 
     }) 

     // Add some back 
     self.services.push(new Service('some service', 'and this is a description', 7, '01/01/2000')); 
     self.services.push(new Service('another service', 'just another description', 2, '02/01/2000')); 
     self.services.push(new Service('driving school', 'learn to drive', 4, '10/01/2000')); 
     self.services.push(new Service('ice cream sunday', 'sweet cold and delicious', 3, '01/01/2002')); 
     self.services.push(new Service('tootie fruity', 'a rootie', 6, '01/01/2003')); 
     self.services.push(new Service('hand gliding', 'you can see your house from here', 5, '01/01/2012')); 
     self.services.push(new Service('turkey dinner', 'is not just for thanksgiving', 1, '01/01/2011'));     
    } 

내가 확장 한 단순히 observableArray에서 모든 항목을 제거하고 그들에게 하나 하나 readds는 '리셋'버튼을 jsfiddle 다음과 같습니다.

http://jsfiddle.net/8uxKF/2/

  1. 그것은 IE10에서 완전히 실패

    . fiddles 실행 창이로드되지 않습니다.

  2. 그것은 부분적으로 크롬에서 작동하지만, 콘솔 오류를 재설정 한 후 정렬이 시작 될 때마다 출력은 다음과 같습니다

    catch되지 않은 형식 오류 : 개체 번호가있는 방법 'sortBy'가 FF에서

  3. 가 작동이 없습니다 크롬과 비슷한 오류. (하지만 내 애플 리케이션에서 정렬 실패)

아무도 도와 줄 수 있습니까? 재설정 후 작업을 정렬해야합니다. 문제를 일으키는 것으로 보아 이것이 리셋하는 '최상의'방법인지 확실하지 않습니다.

답변

0

내가 수정 한 sortByID의 오류를 제외하고 코드와 그 세부 사항을 검토했습니다.

GitHub에서 제공 될 때 mstype 불일치로 인해 jsFiddle이 리소스 중 하나를 차단하고있는 것으로 나타났습니다. 단지 이것을 분명히하기 위해 jsFiddle 내의 GitHub에서 외부 스크립트를 실행하는 것이 문제였습니다.

참조 용으로 jsfiddle.net/8uxKF/3에 게시 된 최종 코드.

0

self에는 sortBy()이라는 기능/속성이없고 (sortDir()도 아님) serviceAdded "이벤트"는 존재하지 않는 속성을 호출하려고하므로 실패합니다.

내가하는 일이 정확히 무엇인지 명확하지 않습니다. 코드가 여기 저기에 있습니다. 아마도 관측 값을 뷰 모델에 추가 했어야할까요?

function ViewModel() { 
    var self = this; 
    // ... 
    self.sortBy = ko.observable('name'); 
    self.sortDir = ko.observable('ascending'); 
}