0

몇 가지 다른 모듈의 여러 인스턴스가 관련된 복잡한 상황이 있습니다.Durandal은 모듈의 특정 인스턴스에서 이벤트를 발생시키는 고유 한 방법이 있습니까?

예를 들어 입력 모듈, 양식 모듈 및 formSelector 모듈이 있습니다. formSelector에서 양식을 선택하면 양식에 올바른 입력이 채워집니다.

양식 위에는 다양한 입력 사항이있는 양식이 있습니다.

모든 입력은 데이터베이스에서 반환되는 내용에 따라 작성됩니다.

이제 pub/sub를 사용하여 양식 객체를 formSelector에서 양식 모듈로 전달하는 이벤트를 트리거하려고 시도했습니다. 이 작동은 트리거가 폼 모듈 인스턴스에만 해당하지 않음을 나타냅니다. 페이지의 모든 양식에 대해 이벤트를 트리거합니다.

특정 양식 인스턴스에 대해서만 일정을 트리거 할 수 있습니까?

참고 : 난 그냥 구조에 대한 참조를 위해 자리에서이를했다. 이 코드는 아마 작동하지 않습니다. 또한, 나는 자바 스크립트가 질문에 대답하는 데 필요하다고 생각하지 않습니다.

입력 : 입력 모듈 목록

<form> 
    <div data-bind="foreach: form.inputs"> 
     <div data-bind="compose: { model: input.modelPath, activationData: input.activationData }"></div> 
    </div> 
</form> 

FormSelector :

<input data-bind="value: input.data" /> 

양식 일부 데이터을 관찰하여 원하는 형태

//List of buttons to select the desired form 
<div data-bind="foreach: forms"> 
    <div data-bind="click: updateForm"></div> 
</div> 
//The desired Form (Module) 
<div data-bind="compose: { model: form.modelPath, activationData: form.activationData }"></div> 
선택

에 Index.html

//Form Module 
<div data-bind="compose: { model: mainForm.modelPath, activationData: mainForm.activationData }"></div> 
//FormSelector Module 
<div data-bind="compose: { model: formSelector.modelPath, activationData: formSelector.activationData }"></div> 

예제를 사용하여 updateForm 내부의 이벤트를 트리거하고 싶습니다.이 이벤트는 FormSelector 내부에서 구성된 양식을 트리거합니다. 문제는 응용 프로그램의 와이드 트리거가 위의 양식을 업데이트한다는 것입니다 (mainForm). 당신이 기능 세계적으로 app.trigger 및 및 app.on을 사용할 수 있도록

답변

0

Durandal는 응용 프로그램 클래스에 기본적으로 이벤트를 유선있다.

그러나 Events.includeIn (obj) 함수를 사용하여 자신의 개체를 연결할 수 있습니다.

자세한 내용은 documentation을 참조하십시오.