Edit: а @zim указал, вы можете использовать вместо публикации и подписки функциональность метеора. Это будет лучшим решением для вашей описанной проблемы.
Читать далее: https://guide.meteor.com/data-loading.html
Если вы по-прежнему полагаться на использование вашего сервера на стороне вызова, вы можете использовать либо реактивный пакет метод, как @Khang указал. Если вы хотите иметь более зернистый доступ о ваших Итоговых значениях, вы должны использовать реактивную Dict:
import {Template} from 'meteor/templating';
import {ReactiveDict} from 'meteor/reactive-dict';
// create a new reactive dictionary to store reactive variables
// let's call it state
Template.dash_board_content1.onCreated(function onCreated(){
//this refers to the Template.instance() here
this.state = new ReactiveDict();
//initial value of userTerritoryList is null
//it will return nothing until it has been changed
this.state.set('userTerritoryList', null);
//you can even set an errors variable
this.state.set('errors', []);
});
Затем вы можете получить доступ к реактивной Dict через Template.instance():
Template.dash_board_content1.helpers({
'userTerritory': function(){
const territoryList = Template.instance().state.get('userTerritoryList');
if (territoryList) return territoryList;
Meteor.call('userTerritoryList', function(error,result){
if(!error){
Template.instance().state.set('userTerritoryList', result);
} else {
const errs = Template.instance().state.get('errors');
errs.push(error);
//update errors
Template.instance().state.set('errors', errs);
}
});
},
'getErrors' : function() {
//use in your template to display multiple err messages
return Template.instance().state.get('errors');
},
});
useTerritory хелпер использует Meteor.call только в том случае, если он не был установлен. Тем не менее, вы можете легко изменить метод, чтобы он всегда вызывал метод.
Обратите внимание, что вы можете тем самым реализовать более гранулированную обработку ошибок.
Почему вы хотите, чтобы метод Meteor вызывал здесь вместо публикации/подписки? – zim
@zim Использование методов считается лучшим подходом к обеспечению безопасности. Много раз было рекомендовано использовать методы и осуществлять проверки подлинности, ролей и т. Д. – Jankapunkt
Я думаю, что вы думаете о методах Метеор против клиентской стороны. pub/sub является безопасным, а imho лучше подходит для вашей проблемы, чем вызов метода. – zim