2014-02-18 7 views
0

DurandalJS에서보기의 작성 바인딩에 바인딩되는 Activator를 내 ViewModel에 생성했습니다. 사소한 예 : 내가 잘못 뭐하는 거지DurandalJS가 activationData를 자식보기 모델로 전달하지 않음 바인딩을 구성합니다.

var ViewModel = function(){ 
    this.childView = activator.create(); 
    this.activate = function(whyIsThisUndefined){ console.error('Well?' + whyIsThisUndefined); } 
} 


<div data-bind="compose: { model : theModel, activationData: [1]}"></div> 

? Durandal이 정품 인증 매개 변수를 전달하지 않는 이유는 무엇입니까?

+1

이 게시물 확인 - http://pwkad.wordpress.com/2014/02/02/best-parts-about-durandal/ –

+0

안녕하세요, PW, Kad, 저는 실제로 그 기사를 읽었습니다. 그 구문을 알고 있고 내 인터넷 검색에서 여러 참조를 발견했지만 하드 코딩 된 값을 사용하더라도 아무 것도 내 activate 메소드에 전달되지 않습니다. 내가 볼 수있는 실제 사례가 있습니까? Durandal의 어떤 버전을 사용하고 있습니까? (나를 위해 2.0.1). 그 샘플에서 –

+0

2.0.1. 활성화 데이터를 activationData로 변경할 수 있습니까? {data : 'Hey !!!!' } 그런 다음 console.log (whyIsThisUndefined)를 열고 해당 객체에 데이터 속성이 있는지 확인하십시오. –

답변

3

Viewton에 Singleton을 사용하는 경우 이후의 각 시간에 매개 변수가 activate 함수로 전달되지 않는다고 생각합니다.

activationData: { data: 'Hey!!!!' } 

을 그리고 당신은 프로토 타입에 활성화 생성 및 뷰 모델 (또는 AMD 모듈)마다의 새로운 인스턴스를 생성하고 있는지 확인 - 같은 데이터를 전달합니다.

+0

prototype에 activate()를 추가하는 것에 대해 ... 그 이유는 무엇입니까? 지금까지 문제없이 새로 만든 인스턴스 자체에 첨부했습니다. 그것은 사소한 변화가 될 것이지만, 나는 왜 그렇게하는지 뒤에 왜 이해하고 싶습니다. –

+0

'ctor = function() {}'과 같은 생성자 함수를 사용한다면, 여러 인스턴스에서 공유 될 수 있도록'ctor.prototype'에'activate'을 넣을 것입니다. 싱글 톤에서 사용할 이유는 없지만 오타가있을 수 있습니다. – RainerAtSpirit

+0

컨텍스트를 읽고, 나는 * 당신이 * 싱글 톤을 사용하지 않고 생성자 함수를 사용하여 프로토 타입에 activate를 첨부 할 때를 의미했습니다. –