Я не знаю, как отвязать некоторый элемент, но вы можете использовать кендо расположения и столько же вид, как вы хотите. Каждая точка зрения может иметь свою собственную модель представления. Это ясное и гибкое решение.
<div id="app"></div>
<script type="text/x-kendo-template" id="layout-template">
<h1 data-bind="text: heading"></h1>
<div id="view1-container"></div>
<div id="view2-container"></div>
</script>
<script type="text/x-kendo-template" id="sub-view1-template">
<p data-bind="text: text1"></p>
</script>
<script type="text/x-kendo-template" id="sub-view2-template">
<p data-bind="text: text2"></p>
</script>
<script>
var layoutViewModel = kendo.observable({
heading: 'Layout heading'
});
var view1ViewModel = kendo.observable({
text1: 'Text from view-model 1'
});
var view2ViewModel = kendo.observable({
text2: 'Text from view-model 2'
});
var mainLayout = new kendo.Layout('layout-template', { model: layoutViewModel});
var view1 = new kendo.View('sub-view1-template', {model: view1ViewModel});
var view2 = new kendo.View('sub-view2-template', {model: view2ViewModel});
mainLayout.render($("#app"));
mainLayout.showIn('#view1-container', view1);
mainLayout.showIn('#view2-container', view2);
</script>
Это гораздо сложнее. Это приложение LOB, где HTML представляет данные из нескольких источников и должен быть отформатирован на основе потребностей бизнеса, а не удобства разработчика. Таким образом, разные представления смешиваются вместе в DOM. Проблема заключается не в логическом представлении, а в представлении вида - в представлении DOM - как только привязка Kendo применяется - это повлияет на все содержащиеся в нем HTML-элементы, даже если они из разных логических представлений. Опять же, Knockout позволяет остановить распространение связывания, но Kendo этого не делает (это уже подтверждается их технической поддержкой). – Sam