2012-02-26 3 views
1

Предположим, у нас есть несколько ViewModels с теми же именами свойств, что и Id, Name, также , мы определили шаблон просмотра (в основном HTML) и хотим использовать/bind данные из обеих ViewModels.Как указать контекст привязки данных View при использовании нескольких моделей просмотров

Вопрос в том, как указать контекст данных привязки, чтобы он мог указывать, с какого вида модели использовать связанные свойства?

ответ

2

Как указано на http://knockoutjs.com/documentation/observables.html, необязательно вы можете передать второй параметр в ko.applyBindings, чтобы определить, в какой части документа вы хотите искать атрибуты привязки данных. Например, ko.applyBindings(myViewModel, document.getElementById('someElementId')). Это ограничивает активацию элемента с идентификатором someElementId и его потомками, что полезно, если вы хотите иметь несколько моделей просмотра и связывать их с другой областью страницы.

Другим вариантом было бы использовать привязку with:, введенную на ko 1.3+, которая отображает DOM на основе определенного свойства viewModel. Это хорошо, потому что если свойство равно null, ничего не отображается вообще. Стив поделился живым примером об этой функции на http://jsfiddle.net/StevenSanderson/f5w6u/3/light/

+0

Отлично, 'с:' то, что меня интересует, особенно для вложенных ViewModels, это большое спасибо! – sll