도우미가 반응 형이되도록하려면 예를 들어 ReactiveVar
과 같은 반응 형 데이터 소스를 반환해야합니다 (meteor add reactive-var
이 먼저 필요합니다).
우리는이 같은 슬라이더 템플릿에 반응 VAR을 할당해야합니다
Template.payments.created=function(){
this.sliderValue=new ReactiveVar(0);
};
그런 다음 우리는 우리의 도우미이 반응 데이터 소스의 값을 반환 할 수 있습니다
Template.payments.helpers({
sliderValue:function(){
Template.instance().sliderValue.get();
}
});
마지막으로 우리는해야 슬라이더가 변경 될 때마다 반응 변수 값을 설정하십시오.
Template.payments.events({
"slidechange #requestAmount":function(event,template){
var sliderValue=template.$("#requestAmount").slider("option","value");
template.sliderValue.set(sliderValue);
}
});
이 모든 것을 재사용 가능한 Meteor 패키지로 포장하여 패키지로 게시 할 수도 있습니다.
재사용이 유성 성분은 다음과 같이 사용될 수
Template.UISlider.created=function(){
this.value=new ReactiveVar(0);
};
Template.UISlider.helpers({
value:function(){
return Template.instance().value.get();
}
});
Template.UISlider.events({
"slidechange":function(event,template){
var value=template.$(".ui-slider-widget").slider("option","value");
template.value.set(value);
}
});
HTML
<template name="UISlider">
<div id="{{id}}" class="ui-slider">
<div class="ui-slider-widget"></div>
<div class="ui-slider-value">{{value}}</div>
</div>
</template>
JS :
HTML
<template name="payments">
{{> UISlider id="requestAmount"}}
<p>{{sliderValue}}</p>
</template>
JS
Template.payments.helpers({
sliderValue:function(){
var $slider=Template.instance().$("#requestAmount");
var sliderInstance=Blaze.getView($slider.get(0));
return sliderInstance.value.get();
}
});
'Template.templateName.events'에서 jQuery UI 이벤트를 수신 할 수 있습니까? –
Meteor 이벤트 맵을 사용하여 HTML5 DOM 이벤트를 포착 할 수 있으며 일반적으로 Blaze와 잘 동작하므로 템플릿을 파괴하면 이벤트가 자동으로 비 승인됩니다. – saimeunt