2017-01-26 5 views
0

У меня есть небольшое приложение для метеорита. Внутри есть два шаблона: один с селектором и один с простым текстом. В любое время, когда селектор изменен, я хотел бы получить второй шаблон для повторной обработки. Я немного новичок в этом, поэтому любая помощь будет оценена по достоинству.Обновление шаблона на отдельном событии шаблона

main.html

<head> 
    <title>btn-test</title> 
</head> 

<body> 
    <h1>Welcome to Meteor!</h1> 

    {{> selector}} 
    {{> display}} 
</body> 


<template name="selector"> 
    <select id="carSelector"> 
     <option value="volvo" selected="selected">Volvo</option> 
     <option value="saab">Saab</option> 
     <option value="mercedes">Mercedes</option> 
     <option value="audi">Audi</option> 
    </select> 
</template> 

<template name="display"> 
    {{selectorValue}} 
</template> 

Main.js

import { Template } from 'meteor/templating'; 
import { ReactiveVar } from 'meteor/reactive-var'; 

import './main.html'; 


Template.selector.events({ 
    'change #carSelector': function(event){ 
    return event.currentTarget.value 
    } 
}); 

Template.display.helpers({ 
    "selectorValue": function(){ 
    return $('#carSelector').val(); 
    } 

}); 

ответ

0

Вы должны использовать реактивный источник данных для сохранения выбранного значения, я вижу, вы уже установить ReactiveVar пакет так что давайте использовать его:

import { Template } from 'meteor/templating'; 
import { ReactiveVar } from 'meteor/reactive-var'; 

import './main.html'; 
const selectedValue = new ReactiveVar(''); 

Template.selector.events({ 
    'change #carSelector': function(event){ 
    selectedValue.set(event.currentTarget.value); 
    } 
}); 

Template.display.helpers({ 
    "selectorValue": function(){ 
    return selectedValue.get(); 
    } 

}); 
+0

Это хорошо работает. Я также рассматривал пакеты под названием Session, которые позволяют вам устанавливать и получать переменные сеанса. Эти два метода кажутся очень похожими. Есть ли серьезные различия между ними? Является предпочтительным? Благодаря! – mcragun

+1

Это зависит от вашей ситуации, но не используйте 'Session', если вам не нужно, потому что' Session' имеет глобальный масштаб, поэтому очень легко его испортить – Khang

Смежные вопросы