Я хочу, чтобы иметь возможность создать обязательный контекст привязки к собственности, таким же образом, как with
переплетных работы:набора привязки контекста к свойству
<div data-bind="with: myData">
<button data-bind="text: myHeader"></button>
</div>
Но я не хочу использовать with
, потому что он воссоздает элементы HTML (в button
в моем примере) каждый раз, когда myData
изменений см http://knockoutjs.com/documentation/with-binding.html:
Если выражение вы поставляете включает любые наблюдаемые значения, выражение будет переоцениваться ш любой из этих наблюдаемых изменение. Затем элементы-потомки будут очищены, и новая копия разметки будет добавлена в ваш документ и связана в контексте нового результата оценки.
Так что мне нужно что-то похожее на with
связывания, скажем, context
связывание:
<div data-bind="context: myData">
<button data-bind="text: myHeader"></button>
</div>
<button>
теперь связан с myData
контекста, так что я не должен писать:
<div>
<button data-bind="text: myData().myHeader"></button>
</div>
Это также описано в http://www.knockmeout.net/2012/03/knockoutjs-performance-gotcha-1ifwith.html
С привязкой очень удобно для привязки к вложенным объектам/моделям и помогает сохранять атрибуты привязки данных от , становясь слишком подробными. Важно, однако, понимать, что со связыванием будет перерисовывать весь раздел всякий раз, когда изменяется его связанное значение .
Что-то вроде этого существует в КО?