2013-07-08 2 views
1

이것은 Backbone.js의 앱과 관련하여 정말 이상한 문제입니다. 아코디언으로 표시되는 다른 검색 결과가 있으며 한 번에 하나의 결과 만 선택할 수 있습니다.Backbone.js model.get 값을 가져 오지 않습니다.

각 결과의 모델에는 결과가 선택되었는지 여부를 나타내는 "selected"속성이 있습니다.

어떤 이유로 나는 경기를 선택 취소 할 수 없습니다. 결과에 클릭이 발생할 때 실행되는 코드입니다.

나는 그것을 살펴 봤는데, 항상 false를 반환하고, 어떻게 든이 함수에서는 true로 설정되지 않습니다.

click_header: function (e) { 
    e.stopPropagation(); 
    var s = this.model.get("selected"); 
    if (s == true) { 
     this.model.set({ selected: false, expanded:false}); 
    } else { 
     this.model.set("selected", true, { silent: true }); 
     this.model.set("expanded", true, { silent: true }); 
    } 

} 

편집 : 나는 문제를 해결. 선택 변경으로 트리거 된 프로그램의 다른 함수는 모든 모델에서 선택을 거짓으로 설정했습니다.

click_header: function (e) { 
    e.stopPropagation(); 
    var s = this.model.get("selected"); 
    this.model.set({ selected: !s, expanded: !s}, { silent: !s }); 
} 
+0

무엇을 의미합니까, 설정되지 않습니다? 사실 일 때 조용히 업데이트하고 있기 때문입니까? –

+0

실제로 if 문을 통해 떨어졌습니다. Chrome Dev 도구를 사용하여 요소를 여러 번 클릭하고 추적하면 항상 다른 사용자에게 전달됩니다. 이벤트가이 어딘가의 영향을 무효화 할 수도 있다는 느낌이 들었습니다. –

답변

1

내가 문제를 해결 :

여기
-1

업데이트 은보다 효율적인 방법입니다. 선택 변경으로 트리거 된 프로그램의 다른 함수는 모든 모델에서 선택을 거짓으로 설정했습니다.

+0

무엇인가 설명해 주실까요? 한 구문에서 다른 구문으로 전환하여 문제를 해결할 수있는 방법을 거의 알지 못합니다. – Loamhoof

관련 문제