ChangeTracking, creando una colección delta en el lado del cliente antes de enviarlo al servidor

StackOverflow https://stackoverflow.com/questions/4726407

Pregunta

Mi aplicación tiene un árbol anidado en un modelo de vista en el cliente. Tengo plantillas jQuery en cada elemento del árbol y es recursivo si tiene un treeitemGroup. Por lo que el objeto JSON enviado al cliente, desde miradas servidor de esta manera,

MvvmTree
- MvvmTreeItemGroup1
---- MvvmTreeItemGroup11
-------- MvvmTreeItem { Title: MyTitle, IsChecked: true }
-------- MvvmTreeItem ... so forth..
-------- MvvmTreeItem ... so forth..
-------- MvvmTreeItem ... so forth..
---- MvvmTreeItem{ Title: MyTitle2, IsChecked: false }
---- MvvmTreeItem
---- MvvmTreeItem
---- MvvmTreeItem
- MvvmTreeItemGroup2
---- MvvmTreeItemGroup21
-------- MvvmTreeItem
-------- MvvmTreeItem
-------- MvvmTreeItem
-------- MvvmTreeItem
---- MvvmTreeItem
---- MvvmTreeItem
---- MvvmTreeItem
---- MvvmTreeItem

Mi apariencia TreeItemTemplate como este,

<script type="text/x-jquery-tmpl" id="mvvmTreeViewGroupTemplate"> 
<li>
    <span data-bind="text: Title" class="mvvmTreeItemStyle"/></br/>

    <ul data-bind='template: { 
                            name: "mvvmTreeViewItemTemplate", 
                            foreach: MvvmTreeItems
                            }'>
    </ul>

     <ul data-bind='template: { 
                            name: "mvvmTreeViewGroupTemplate", 
                            foreach: MvvmTreeItemGroups
                            }'>
    </ul>
</li>
</script>
<script type="text/x-jquery-tmpl" id="mvvmTreeViewItemTemplate"> 
<li>
    <input type="checkbox" data-bind="checked: IsChecked" class="checkboxStyle"/> <span data-bind="text: Title" class="mvvmTreeItemStyle"/> (Id: <span data-bind="text: Id" class="mvvmTreeItemStyle"/>)</br/>
</li>
</script>

Ahora tengo que ser capaz de realizar un seguimiento de los cambios en el IsChecked Propiedad en cada TreeItem, que está unido a cada casilla de verificación. Después de los controles de usuario un conjunto de TreeItems, se hace clic en un botón separado, que tendrá que enviar los deltas en forma de MvvmTreeItem [] json matriz de objetos (sólo cambios que ocurrieron en el cliente para los estados de casilla de verificación) al servidor.

Hasta ahora mi investigación sugiere, que debería reemplazar el valor predeterminado comprueba bindingHandler de knockoutjs con mi propia y controlar el evento empujando los elementos de una matriz a lado del cliente, pero tiene dificultades para visualizar cómo lograr eso.

Se apreciará cualquier punteros / muestras de código.

¿Fue útil?

Solución

He hecho un buen progreso con la ayuda de la gente fina sobre la grupo de google para Knockoutjs como @green y @mkidder (gracias chicos)

Todavía veo varios problemas (mencionados en el hilo), y la esperanza de encontrar respuestas.

No va a ser lo suficientemente claro a menos que comprueba la jsFiddle

http://jsfiddle.net/VinKamat/M8W3L/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top