2014-04-07 3 views
1

난과 같이, 조성물을 2 다른 뷰를로드하는 상 Durandal보기가 결합 구성한다. 같은 충전 (버튼 클릭시) 이후durandal 회

this.detail = ko.observable(null); 

하고 : "상세"처음 같이 생성되는 다른 관측

this.detail({model: 'app/element/elementDetail', activationData: item); 
     if(!condition){ 

      this.showingList(false); 
      this.showingDetail(true); 
     } 

문제는 그 때마다 "showingDetail"변경되면 "composing"바인딩 화재가 다시 발생합니다 ("showingDetail"행을 주석 처리하면 문제가 사라집니다)

다른 바인딩을 업데이트해야하는 경우 "compose"바인딩이 두 번 실행되는 이유가 있습니까 ??? 어쩌면 다르게 (그 "구성"이 내 "customVisble"을 다시 발생시키는 것입니까?) ???

는 "customVisible는"바인딩 만 근본적인 문제는 "활성화"와 "compositionComplete"이벤트가 아이를 두 번 발사되어 있다는 "DIV"요소

의 "style.display를"속성

를 볼를 업데이트

미리 감사드립니다.

답변

1

어떤 녹아웃 버전을 사용하고 있습니까? 3.0에서는 바인딩을 별도로 평가하는 변경 작업을 수행했습니다. 변화에 정말 좋은 소개이 게시물을 참조 : 나는 Durandal 스타터 키트와 함께 제공되는 버전 인 2.3을 사용하고

http://www.knockmeout.net/2013/10/knockout-3-highlights.html

+0

. 부트 스트랩을 3.1로, jQuery를 1.11로 마이그레이션했지만 녹아웃을 마이그레이션하지 않았습니다. 내가 그것을 시도하자 그리고 난 당신에게 돌아갈 것입니다 –

+0

안녕하세요 @ 프랭크 나는 녹아웃 3.1로 마이 그 레이션 문제를 해결했다. 그래서, 나는 불공정하게 Durandal을 비난했다. 감사합니다. –

+0

녹아웃 3.1에서는이 문제를 해결할 수 있지만, 일반적으로 말하자면, 다른 바인딩을 사용하여 동일한 요소, 심지어 맞춤 요소에'if' 또는'visible' 바인딩을 두는 것은 좋지 않습니다. 그게 내 경험 이었어. 그냥 내 두 센트 ... –