9 parent-child mvvm viewmodel single-page-application durandal
我已经开始使用(几个小时前)Durandal希望在一个页面内管理视图和允许组合 - 之前的方法,也使用Knockout,在一个胖的HTML文件中维护过于笨重.
我已经安装/设置了Durandal,我可以创建视图和视图模型 - 但是,我不知道如何将数据导入 viewmodel以用作新视图模型的基础.
举例来说,我有选择的项目是"左侧导航栏" -当一个项目被选中它更新了"选择项"在当前的模型观察到的,但它应该也加载正确的"详细信息视图",在右边:由于部分尝试Durandal分离组件/视图的原因,这应该来自一个单独的视图/视图模型.
我已经阅读了包含Composition和Using Composition的文档,但是关于如何将数据传递给viewmodel的方法对我来说并不清楚.看起来我可以使用现有模型的视图(在当前视图/范围中),但我真的只想使用一些当前模型数据(即id)来获取"真实"模型数据风景.
因此,我的问题;
如何将初始数据(例如"选定项目")传递给视图模型?我更喜欢使用声明性的"compose:"绑定,因为这就是KO的原因.KO.
这种概念是在这里使用/传递初始数据的正确方法,还是有更好的选择?我看到"activeItem"含糊地提到了,但细节/用法让我很开心.
更新1:我发现我们如何在视图之间共享数据/传递数据视图以进行查看,但实际实现中缺少响应.我真的不想在父子(不同的视图/视图模型对)之间共享viewmodel,我想使用声明式方法(没有事件).父母不需要了解孩子,但孩子需要从父母那里获得数据.
更新2:虽然上面我暗示只需要"id",但我想要一种适用于任何基础对象的方法,路由器不一定适合.在这种情况下,深度链接不是问题.但是,如果你觉得路由器的方式来处理这个,张贴如答案参数(带细节),我会至少给它一个赞成票..
如果您查看 Breeze 源代码,您可以看到主从方法的示例。
他们正在使用激活器来组成子视图。
我不知道您是否使用微风,但该方法与您如何获取数据无关。
| 归档时间: |
|
| 查看次数: |
10410 次 |
| 最近记录: |