JSVIEW data-link шаблона для поддержки индекса x и y в пользовательском интерфейсе - PullRequest
0 голосов
/ 16 декабря 2018

Я использую JSView в своем демонстрационном приложении.на веб-странице, когда я заново связываю шаблон с HTML-дивом, чтобы получить последние значения.Я хочу сохранить индекс X и Y в HTML.При повторной ссылке на шаблон HTML полностью обновляется, что заставляет пользователя терять координаты x и y страницы, на которой он находится.

Любая помощь будет с большой вероятностью признана.

$(document).ready(function () {
 window.setInterval( function(){
reLinkTemplateHtml();
}, 5000);}


 function reLinkTemplateHtml() {
 $.getJSON("/Demo/DemoAPI/GETDemoData", { _: new Date().getTime() 

}).done(function (json) {

  $.templates("#Demo-template").link("#result_wrapper", json);
                return true;
            }).fail();
}        

1 Ответ

0 голосов
/ 18 декабря 2018

Вызов template.link("#result_wrapper", json) полностью переопределяет содержимое элемента "#result_wrapper".

Похоже, ваш сценарий включает использование json с сервера для рендеринга и связывания HTML-содержимого в браузере, и, возможно,интерактивность на стороне клиента, вызывающая наблюдаемые обновления данных (json) в браузере, но в дополнение к некоторому виду циклического отключения данных json на сервер: возможно, отправка измененного json обратно на сервер, но также получение обновленного json с сервера, которыйможет включать в себя обновления на стороне сервера.

В этом сценарии, если вы хотите инкрементные обновления в браузере (чтобы не заменять весь HTML-код и, следовательно, иметь возможность поддерживать пользовательское состояние) при извлечении модифицированного json, вынужно заметно обновить только те части клиента json, которые были изменены.По сути, вам нужно выполнить 'diff' между текущим json и загруженным обновлением.

JsRender и JsViews обеспечивают поддержку этого сценария, используя скомпилированные модели представления , и, в частности, vm.merge (newJson) .

См. Также другие связанные разделы документации по JsRender / JsViews, такие как this и this .

...