Я сделал решение для одностраничного приложения, которое будет использоваться для отображения большого экрана в здании завода, отображающего информацию о состоянии и показатели производительности для набора машин. Через файл настроек, который получается через вызов ajax, приложение знает, какие машины должны отображаться. Таким образом, для каждой машины шаблон, а для каждой информации о машине создается вложенный шаблон (koExternaltemplateengine). Также первый вызов ajax содержит URL-адреса для вызовов ajax для всех машин. Ответы на эти вызовы содержат конкретные для машины значения. Эти вызовы повторяются периодически, и отображаемые значения обновляются. Все привязки выполняются с нокаутом и плагином для сопоставления, чтобы избежать жесткого кодирования viewmodel clientside. Рамка и контейнеры (панели) машины привязаны к данным первого вызова, поля данных вложенных шаблонов привязаны к атрибутам данных, содержащимся в ответном ответе ajax вызовов машины.Условное связывание с knockout.js/mapping plugin/koExternal engine engine/json from ajax
Теперь моя проблема: если все ajax-вызовы для всех машин доставляют требуемые данные для отображения, все работает нормально. НО: Для некоторых машин иногда (также при начальной загрузке) вызовы успешны (200), но содержат только нуль (в этот момент данные недоступны). Теперь у меня проблема. После ko.applybindings (machinedata, machinediv) я получил «Невозможно выполнить синтаксические привязки». для полей связанных значений и ko завершает привязку. Таким образом, дисплей не отображается полностью и никаких обновлений не запускается.
Теперь я попробую что-то с привязками if/ifnot, но что произойдет, если после обновления начальные не связанные значения присутствуют? (ручная привязка для повторного использования, дополнительная для ko.mapping.fromJS ??).
У кого-то была аналогичная проблема? Какие-либо предложения? Как я уже говорил, я хочу избегать жестко настроенных режимов просмотра, чтобы облегчить будущие расширения для большего количества атрибутов машины.
Звуки применимы. Thx, delixfe! Я попробую что-то вроде этого. – TH1976