Sie können nicht darauf zugreifen Tag direkt von Spacebar Vorlagenattributen. Sie müssen dafür einen Vorlagenhelfer erstellen.
Template.templateXY.helpers({
bigBody: function() {
return $("body").width() > 979;
}
});
dann verwenden Sie es wie folgt aus:
<template name="templateXY">
{{#if bigBody}}
{{> tmp1}}
{{else}}
{{> tmp2}}
{{/if}}
</template>
UPDATE: für die Helfer auf Fenster Resize-Ereignis neu zu berechnen, müssen Sie es ein wenig ändern. Sie können dafür ein Abhängigkeitsobjekt verwenden.
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");
});
Andere mögliche Lösung wäre es, die Fensterbreite zu einem ReactiveVar zu speichern (die eine reaktive Datenquelle selbst) und verwendet .on („Größe ändern“, fn)
Welche Forschung haben Sie getan? Was hast du probiert? – Taegost
die einzige Möglichkeit, die ich gefunden habe, ist dynamische Vorlage dann im OnRendered-Event bekommen diese Werte mit js, aber bin im Fenster Resize Event stecken. –