После многочисленных попыток очистить мои мысли по этому вопросу я подумал, что было бы лучше, если бы я обратился к некоторым специалистам, которые могли бы указать мне в правильном направлении.Как связать модель холста HTML5 с картой данных MVVM/MVP
Концепция заключается в следующем, а скорее основную идею в концепции:
- Последние данные извлекаются из базы данных на стороне сервера через регулярные промежутки времени.
- Эти данные помещаются в модель, управляемую чем-то вроде Backbone.js, Ember.js или KnockoutJS.
- При обновлении элементы на холсте обновляются соответствующей информацией (холст управляется чем-то вроде KineticJS или Fabric.js).
- Потенциал для отмены этого процесса, отправка данных обратно на сервер из изменений на холсте.
Так что мой вопрос заключается в следующем: это практично, чтобы связать модель холста (что библиотеки холста) с этим одной из моделей/MVP MVVM? Те, на которые я смотрел, похоже, сосредоточены на HTML-элементах (и я уже обсуждал KnockoutJS ранее в этом контексте), но на этот раз я пытаюсь управлять элементами холста. Если это возможно (или нет), или если требуется решение для дома, что я должен искать, какие подводные камни есть, что я могу пропустить или забыть?
Кажется, something similar came up только пару лет назад, изменилось ли оно с тех пор или это все еще вопрос домашнего выращивания решения? Могут ли ответы на них быть расширены?
Я не ищу полные решения, но для тех, у кого есть определенный опыт под их поясом, чтобы дать мне какое-то направление (я единственный в работе, у кого есть опыт в этой области вообще и без кого-либо поговорить с ним или, даже понять его понимание, я бегаю по кругу).
Заранее спасибо.
Правильно, это честная битка. Позвольте мне обойти его, в этом случае вы наблюдаете за событием навигации, чтобы обновить калибры, правильно? Используя ту же концепцию привязки с помощью KOJS, могу ли я привязать к изменениям в другой модели, которая обновляется через запрос AJAX? Или изменения в модели нокаута, но тогда мне придется перерисовать весь холст, не так ли? Как я привязываюсь к этому, а не к отдельным предметам холста? – Skyrail
Ну, я использую навигацию, чтобы перейти на другую страницу в приложении одиночной страницы, но принцип тот же. Будет вашей моделью просмотра, которая будет иметь обработчик $ .subscribe, который будет уведомлен о возникновении события клика, а затем вы можете обновить все, что захотите, в этой модели. У меня есть гораздо более сложный холст, который я подключил к KO, и у меня есть функция набора в этом холсте, который принимает модель представления, и перерисовывает части холста, которые нуждаются в обновлении. Если вы можете получить доступ к другой модели представления в функции обновления, вы можете привязываться к ней и иметь ее доступную. –
У меня есть этот холст, настроенный так, чтобы он обновлялся в результате вызова AJAX. Это делает его более ясным? Я полагаю, что это, вероятно, не будет! Я бы опубликовал еще несколько кода, но этот холст составляет около 2000 строк js! –