是否可以将viewmodel中的可观察和可观察数组作为参数传递给其他页面或json?
假设我有几个字段,当我按下一个按钮时,它会重定向到另一个页面并显示参数。
这可以通过knockout / jquery完成,还是我需要发布到控制器并从那里重定向?
我们的想法是将信息传递到确认页面,然后从那里继续提交给控制器。
感谢正手!
答案 0 :(得分:1)
我甚至会说你不应该做其中任何一件事。它闻起来像糟糕的设计。
我不久前回答了同样的问题(或至少非常相似),我认为答案也适用于此: durandal : best way to pass data between ViewModels
编辑:我读过你的目标是什么。在这种情况下,我会采用不同的方法:永远不要离开页面。只需在当前视图中内联创建确认“页面”,并设置一个标志以确定是否应显示表单或确认。这将节省大量开销,并且在客户端也会更具响应性。
编辑2:提出您的请求:http://jsfiddle.net/7zp5K/33/
基本上诀窍就在于你的viewmodel上的submit
函数,我交换了observable showConfirm
。在您的HTML中,我创建了2个“视图”(div)。根据{{1}}的状态显示只有一个。
在确认视图中,我使用showConfirm
绑定来显示所选项目。
答案 1 :(得分:0)
如果我理解你的问题,你试图将ViewModel从一个页面传递到另一个页面。如果是这种情况,则不可能立即进行。您必须根据接收的数据(查询字符串,JSON或任何其他数据格式)在重定向页面中创建ViewModel。
如果数据很小,您可以通过querystring
传递数据,并在重定向的页面中相应地创建一个viewmodel。否则,使用表单发布提交数据。它更多是要求特定的,而不是 knockout 特定的。