ajax – durandal:在ViewModels之间传递数据的最佳方式
Durandal:如果可能的话,在Viewmodels之间传递数据(参数)的正确方法是什么(不处理后端).
假设我有2个视图概述和详细信息我希望用户点击列表元素从概述中获取该元素的ID并将其传递给详细信息Viewmodel以便我可以开始使用该ID. 感谢您的帮助 解决方法
提示:您可能想要路由驱动的方法.另一个是为了完整起见.
Viewmodel驱动的方法 路线驱动的方法 单击列表元素需要一个类似于此的事件处理程序: overview.onElementClick = function (e) { var element = this,// The idea is that you need the clicked element for the next line of code koDataForElement = ko.dataFor(element); router.navigate('details/' + koDataForElement.id); } ko.dataFor是一个很好的淘汰助手,用于获取与传递给它的元素绑定的viewmodel数据,在本例中为list元素.单击时,您需要导航到详细信息,并将单击元素的ID传递给详细信息.上面的代码完成了所有这些. 现在你的详细信息viewmodel的activate函数应如下所示: details.activate = function (id) { // id is the parameter we defined for the route. Now you are free to leverage it inside your second view! }; 编辑:附加提示:您还可以直接从链接触发带有ID的路由.假设你的整个列表元素都包含在一个锚标记中,你可以这样做: <div data-bind="foreach: myListOfElements"> <a href="#" data-bind="attr: { href: '#details/' + id }">listElementGoesHere</a> </div> 祝好运!如果还不清楚请告诉我, (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |