В моем приложении-метеоре есть кнопка для перехода из режима просмотра пользователя в режим редактирования. В этой части я использую JointJS как внешний пакет для отображения и редактирования диаграмм. (api.use('mxmxmx:[email protected]');
)
В пользовательском представлении диаграмма не должна быть редактируемой. Итак, я хочу переключить interactive
с true на false и наоборот.
Но в моей попытке переменная не является реактивной: Session.set('editor', true)
не меняет вид сразу. Мне нужно перезагрузить страницу, чтобы увидеть новый вид.
Как я могу сделать это реактивным?
var graph = new joint.dia.Graph;
Template.jointjs.onRendered(function() {
var interactive = Session.get('editor') ? true : false;
var paper = new joint.dia.Paper({
el: $('#canvas'),
width: 801,
height: 496,
model: graph,
interactive: interactive,
});
});
<template name="jointjs">
<h1>{{diagram.title}}</h1>
<div id="canvas"></div>
</template>
Обновить
Это тоже не работает, так как интерактивная переменная просто вступает в силу, перезагружая страницу:
Tracker.autorun(function() {
var interactive = Session.get('editor') ? true : false;
var paper = new joint.dia.Paper({
el: $('#canvas'),
width: 801,
height: 496,
model: graph,
interactive: interactive
});
});
autorun
и перезапустите при изменении сеанса - person Mark Uretsky   schedule 23.10.2015