2015-07-16 2 views
0

У меня сложный вид, состоящий из разных частей. Мне нужно связать некоторые его части вручную с ViewModel, который отличается от вида для самого представления. В настоящее время пользовательский интерфейс Kendo обрабатывает все элементы представления для основного связывания - есть ли способ проинструктировать его пропустить некоторые элементы, такие как Knockout?Kendo UI - стоп-привязка для части обзора

Спасибо,

Сэм

ответ

1

Я не знаю, как отвязать некоторый элемент, но вы можете использовать кендо расположения и столько же вид, как вы хотите. Каждая точка зрения может иметь свою собственную модель представления. Это ясное и гибкое решение.

<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> 
+0

Это гораздо сложнее. Это приложение LOB, где HTML представляет данные из нескольких источников и должен быть отформатирован на основе потребностей бизнеса, а не удобства разработчика. Таким образом, разные представления смешиваются вместе в DOM. Проблема заключается не в логическом представлении, а в представлении вида - в представлении DOM - как только привязка Kendo применяется - это повлияет на все содержащиеся в нем HTML-элементы, даже если они из разных логических представлений. Опять же, Knockout позволяет остановить распространение связывания, но Kendo этого не делает (это уже подтверждается их технической поддержкой). – Sam