Вам следует избегать Session
, где вы можете.Лучше использовать переменные, превышающие шаблон, с помощью общей области видимости.Для этого подходят импорт / экспорт ES6.
Предположим, вы хотите разделить ReactiveDict
(который ведет себя как Session
) как состояние только между этими двумя шаблонами.Вы можете создать новый файл js со следующим содержимым:
shared.js
import { ReactiveDict } from 'meteor/reactive-dict'
export const SharedAB = new ReactiveDict()
Это дает вам возможность делиться состоянием только между этими шаблонами,которые импортируют объект.
templateA.js
import { SharedAB } from './shared.js'
Template.templateA.events({
'change #batch_form': function(){
var batch_num = document.getElementById('batch_number').value;
var dist_name = document.getElementById('distributor_name').value;
var data = {
batch_number: batch_num,
dist_name: dist_name
}
SharedAB.set('form_data', data);
}
})
templateB.js
import { SharedAB } from './shared.js'
Template.templateB.helpers({
input_data(){
return SharedAB.get('form_data');
},
});