Я боролся с этим в течение некоторого времени, и havent нашел решение, надеюсь, вы сможете помочь.Нокаут с конструкцией заставляет обновить весь html
В моем приложении SPA, построенном с нокаутом и дурандалом, я сильно полагаюсь на конструкцию With knockoutJS. Что-то, что сильно заложено во всем ядре как шахтных, так и дурандальных архитектур.
Многие действия идут со связанными с ними маршрутами, чтобы сохранить предыдущее действие в истории браузера. Теперь действие также может манипулировать DOM или инициировать переход CSS (например, задание класса во внутреннем div, который запускает переход).
К сожалению, каждый раз, когда привязка перепроверяется, вся DOM под этим выражением перестраивается, тем самым отменяя мои изменения DOM и переходы на убийство. Это именно то, что происходит в моем сценарии, который что-то вроде следующего псевдо:
<div data-bind="with: myViewModel">
... print current datetime ....
</div>
...
myViewModel(myViewModel());
Пожалуйста, смотрите эту jsfiddle для более конкретного примера такого поведения: http://jsfiddle.net/k32Xf/
Эта проблема только с конструкцией, однако Я не нашел способ обойти его, кроме как взломать сам дурандальный код. Это ошибка в нокауте? что будет предлагаемым решением/обходным решением?
Спасибо!
Я ничего не вижу Дюраннал, связанный с jsfiddle. – RainerAtSpirit
Правильно, настоящая проблема imo в нокауте, но durandal kinda заставляет вас использовать определенную архитектуру, которая вызывает эту проблему. В основном я использую перенаправление маршрута и функцию активации моей модели просмотра для принятия соответствующих действий, однако этот же маршрут заставляет мой HTML перестроить. – Polity
Можете ли вы использовать fork https://github.com/dFiddle/dFiddle-1.2 и создать скрипку того, как вы используете Durandal в этом контексте? – RainerAtSpirit