Я пытаюсь получить привязку данных для работы в дротике. В основном, я делаю то же самое, что и в этом video. Используя псевдокод выглядит следующим образом:dart mdv databinding не обновляется при изменении
mdv.init();
var p = new Person('john');
query('#someId').model = p;
В HTML файле я также есть шаблон, который работает правильно. Пока я только пытаюсь получить одностороннюю привязку данных к работе, и хотя шаблон правильно инициализирован, последующие изменения переменной p не отображаются в шаблоне. Я пытаюсь активировать обновление, подобное этому
node.model = null;
node.model = p;
Это не инициирует обновление. Но если я использую задержку он делает работу:
node.model = null;
new Timer(new Duration(milliseconds:20),(){
node.model = p;
});
Так у меня есть несколько вопросов по этому поводу:
- Почему изменение переменной не отражает изменения в шаблоне?
- Является ли шаблон не обновляемой, как я это делаю? Или mdv/полимер не работает так, как он предназначен?
- Возможно ли вручную инициировать обновление шаблона?
- Можно ли легко преобразовать одностороннюю двустороннюю привязку данных (т. Е. Сделать класс Person в наблюдаемом psuedocode или что-то еще)?
PS Я искал и попробовал несколько вещей перед публикацией здесь. Я нашел topic, в котором создан пользовательский полимерный элемент, который кажется более сложным, чем хотелось бы. Я также попробовал fancy-syntax lib (это не улучшило его) и databinder (ошибка компиляции). Я также прочитал пару страниц о polymer, но я не уверен, что относится к дротику и не устарел (или «устарел», как предупреждает выше страницы).