Обратный вызов onCreated
запускается только один раз при создании шаблона, поэтому вы получаете те данные, которые предоставляются для первоначального создания (вероятно, с вашим атрибутом, установленным в undefined
).
Этовероятно, что контекст данных изменяется после первоначального рендеринга, и это не вызывает функцию.поскольку шаблон не создается заново.
Если вы уверены, что хотите отслеживать контекст данных в обратном вызове onCreated
, вам необходимо установить реактивную зависимость от него, используя Template.currentData()
реактивный источник данных.Поскольку он должен быть внутри реактивного контекста, чтобы его можно было повторно запускать при изменении данных, вам нужно будет создать его, и удобный способ сделать это - через this.autorun()
, который останавливает вычисления для вас, когда шаблонуничтожен.
Template.jobsheetsTable.onCreated(function(){
this.companyId = new ReactiveVar();
this.autorun(() => { // creates a reactive computation
const data = Template.currentData(); // creates a reactive dependency
console.log('data context', data);
if(data.companyId){
this.companyId.set(data.companyId);
}
})
});
Приведенный выше код содержит блок autorun
, который будет повторно запускаться при изменении контекста данных.