인자가있는 Blaze 템플릿을 포함시킨 다음 이벤트에 인수 값을 사용하고 싶습니다. 문제는 다른 인수로 두 번째 템플릿을 포함 할 때 이벤트에서 템플릿의 첫 번째 인스턴스에서 인수 값을 가져옵니다.meteor 템플릿 인수 값이 도우미와 이벤트가 다릅니다
템플릿 :
<template name="UploadFormLayoutImage">
<form class="uploadPanel">
<input type="file" name="fileupload" id="input-field">
<label for="input-field">Upload file</label>
</form>
</template>
은 다음과 같습니다 :
{> UploadFormLayoutImage layoutArea="area1"}}
{> UploadFormLayoutImage layoutArea="area2"}}
JS :
Template.UploadFormLayoutImage.onCreated(function(){
this.currentArea = new ReactiveVar;
this.currentArea.set(this.data.layoutArea);
});
Template.UploadFormLayoutImage.helpers({
layoutArea: function() {
return Template.instance().currentArea.get(); //Returns the correct argument value for each instance of the template.
}
});
Template.UploadFormLayoutImage.events({
'change input[type="file"]': function(e, instance) {
e.preventDefault();
console.log(instance.data.layoutArea); //Allways returns 'area1'
}
});
나는 여기에 놓치고 무엇을? (이것은 내 첫 번째 Stackoverflow 질문입니다.) 부드럽게하십시오 :)
UploadFormLayoutImage 템플릿을 공유하십시오. 이 템플릿의 주장을 도우미에게 부르시겠습니까? – Ankit
@Ankit 템플릿을 추가했습니다. 실제로 템플릿에 도우미가 필요하지 않습니다. 헬퍼처럼 이벤트에서 동일한 값을 가져와야합니다. 몽고 문서를 만들 때이 값을 사용할 것입니다. 귀하의 의견에 감사드립니다. – Michel