Есть несколько способов, которыми вы можете пойти по этому. Как правило, вы добавляете несколько моделей «вспомогательных» видов в модель основного вида, а затем используете привязку with
в различных областях с фактическими моделями видов для привязки к ним.
Технически возможно делать то, что вам нужно. Вы можете создать пользовательскую привязку, которая сообщит KO, что она сама будет обрабатывать привязку дочерних элементов. Это будет выглядеть так:
ko.bindingHandlers.stopBindings = {
init: function() {
return { controlsDescendantBindings: true };
}
};
Когда вы поместите это на элемент, КО будет игнорировать дочерние элементы. Затем вы можете вызвать ko.applyBindings для дочернего элемента этого элемента с другой моделью представления.
Образец: http://jsfiddle.net/rniemeyer/tWJxh/
Как правило, однако, вы бы использовали несколько моделей представлений под моделью основного вида, используя привязку with
.