2015-01-04 3 views
0

Я пытаюсь установить id для экземпляра шаблона. Тот, который выживает при нажатии на горячий код. Я попытался добавить идентификатор к атрибуту «data-id» в первомNode шаблона, но он потерян, когда происходит нажатие на горячий код.Как получить идентификатор экземпляра шаблона?

Цель состоит в том, чтобы сохранить состояние шаблона в переменной сеанса, названной в честь идентификатора шаблона. В обработанном шаблоном событии я бы проверял эту переменную сеанса, и если у нее есть информация, я бы восстановил состояние шаблона при наступлении горячего кода.

Обновление Это для пакета, поэтому идентификатор должен быть случайным числом.

ответ

0

Вы не должны использовать сеанс для этого. ReactiveDict (от reactive-dict) теперь поддерживает миграцию данных, которая выживает при нажатии на горячий код (смотрите here). Единственное, что вам нужно сделать, это предоставить уникальное имя для реактивного экземпляра Dict

Template.yourTemplateName.created = function() { 
    this.myState = new ReactiveDict('myUniqueId'); 
} 

Это будет работать только - конечно - если у вас есть несколько параллельных экземпляров шаблона. Также обратите внимание, что это решение не гарантирует сохранение состояния после перезагрузки страницы пользователей. Если вам нужно поддерживать более сложные шаблоны поведения, вам, вероятно, не удастся избежать использования куки-файлов или решений на основе локальных хранилищ.

+0

В этом проблема, я пытаюсь сохранить случайный идентификатор для экземпляра шаблона, чтобы я мог получить состояние после нажатия горячего кода. В вашем примере предполагается, что у меня уже есть ID. – Manuel

+0

Любой источник претензии «ReactiveDict теперь поддерживает миграцию данных, которая выживает при нажатии« горячего »кода»? [Комментарии в коде] (https://github.com/meteor/meteor/blob/devel/packages/reactive-var/reactive-var.js#L10) не согласны. –

+0

@ PeppeL-G Хорошая точка! Я забыл добавить правильную ссылку. –

Смежные вопросы