mannaro
@mannaro
Умею профессионально гуглить

Как обновлять значение текстового поля в meteor (при вводе)?

Вечер добрый. Есть у меня коллекция Item. В ней хранится документ { name: 'Abc' }. Есть шаблон:
<template name='a'><div contenteditable>{{name}}</div></template>

Template.a.helpers({
  name() {
    return Items.findOne(...).name;
  }
});

Template.a.events({
  'input div': function(e, tmpl) {
	var item = $(e.currentTarget);
    clearTimeout(item.data('timeout'));

    var id = setTimeout(() => {
      var text = item.text();
      Items.update(this._id, { $set: { name: text } });
      item.val(text);
    }, 500);

    item.data('timeout', id);
  }
});


Так вот, при вводе текста каретка у поля слетает в начало текста. Это и понятно. Вопрос в том, как победить это поведение? Только убрав реактивность у name?
  • Вопрос задан
  • 187 просмотров
Решения вопроса 1
mannaro
@mannaro Автор вопроса, куратор тега JavaScript
Умею профессионально гуглить
Это баг Blaze. Как сейчас обстоят дела не знаю. Возможно, решили уже.
Тогда поборол так: убрал contenteditable :)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы