Вы не можете получить доступ атрибутов тега непосредственно из шаблона Spacebars. Для этого вам нужно создать помощник шаблона.
Template.templateXY.helpers({
bigBody: function() {
return $("body").width() > 979;
}
});
затем использовать его как это:
<template name="templateXY">
{{#if bigBody}}
{{> tmp1}}
{{else}}
{{> tmp2}}
{{/if}}
</template>
UPDATE: для помощника пересчитывать на события Изменить размер окна, необходимо изменить его немного. Для этого вы можете использовать объект Dependency.
Template.templateXY.onCreated(function() {
// create a dependency
this.resizeDep = new Dependency();
});
Template.templateXY.onRendered(function() {
let tmpl = this;
// invalidate the dependency on resize event (every 200ms)
$(window).on("resize.myEvent", _.throttle(function() {
tmpl.resizeDep.changed();
}, 200));
});
Template.templateXY.helpers({
bigBody: function() {
// recompute when the dependency changes
Template.instance().resizeDep.depend();
return $("body").width() > 979;
}
})
Template.templateXY.onDestroyed(function() {
$(window).unbind("resize.myEvent");
});
Другое возможное решение было бы хранить ширину окна к ReactiveVar (который сам по себе является реактивным источником данных) и использовать .on («размер», п), чтобы изменить ReactiveVar
Какие исследования вы сделали? Что вы пробовали? – Taegost
единственный способ, которым я нашел, - создать динамический шаблон, а затем в onRendered событие получить эти значения с помощью js, но я застрял в событии изменения размера окна. –