我的应用程序在客户端上的ViewModel中有一个嵌套树。我在每个树项目上都有jQuery模板,如果它具有树木群,则递归。因此,从服务器发送给客户端的JSON对象看起来像这样,

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

我的treeitemtemplate看起来像这样,

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

现在我需要能够跟踪更改 检查 每个TreeItem上的属性,该属性绑定到每个复选框。用户检查一组TreeItems后,将单击一个单独的按钮,需要以Mvvmtreeitem [] JSON对象阵列(仅在客户端上发生的更改到复选框状态)的形式发送Deltas。

到目前为止,我的研究表明,我应该使用我自己的默认检查的敲除绑定绑定者,并通过将项目推入客户端阵列来处理事件,但是很难可视化如何实现这一目标。

任何指针 /代码样本都将不胜感激。

有帮助吗?

解决方案

我在优秀人士的帮助下取得了良好的进步 Google Group for淘汰赛 像@green和@mkidder(谢谢家伙)

我仍然看到几个问题(线程中提到),并希望找到答案。

除非您检查JSFIDDLE,否则它就不够清楚了

http://jsfiddle.net/vinkamat/m8w3l/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top