1
我有一个需要有条件填充的视图。杜兰达尔。将其他数据传递给其他视图
场景: 经理将在屏幕B上选择一个用户名,然后导航到用户填入EG的相同表格。屏幕A,除了所述管理者可以选择批准或拒绝用户的请求。
我已经看到,在我的虚拟机屏幕上我可以做到以下几点。
var vm = {
activate: function (data) {
console.log(data);
var id = data.id || -1;
if (id !== -1) {
router.isNavigating(true);
http.json('/api/user/'+ id)
.done(function (response) {
ko.viewmodel.updateFromModel(vm.userInfo, response);
router.isNavigating(false);
});
}
}
};
然后B(图&视图模型)
视图
<table>
<thead>
<tr>
<td>User</td>
<td>Date Requested</td>
<td>Action</td>
</tr>
</thead>
<tbody>
<tr>
<td>Mike</td>
<td>19 Jun 2013
</td>
<td>
<input type="button" value="Go" data-bind="click: function() { buttons.goTo(6) }" />
</td>
</tr>
</tbody>
</table>
视图模型
define(['durandal/plugins/router'], function (router) {
var buttons = {
goTo: function (id) {
console.log('goTo clicked');
//this does work in conjunction with my code on B
router.navigateTo('#/userinfo?id=' + id);
}
};
var vm = {
buttons: buttons
};
return vm;
});
我的问题是,我不知道是什么该会st way /或者如何让Durandal从B导航到A页......我做的对吗?感觉有点“哈克”
我看过splat这个词出现在一些文章中,但是我很困惑这一切。但我会做更多的阅读。尽管在接受之前我想更清楚一点。但是谢谢你。 –
这是一个更详细的链接。我实际上使用杜兰达2.0测试版,它使用完全不同的路由引擎,或者我会复制一些我的代码。http://stackoverflow.com/questions/15300146/how-to-use-the-splat-parameter-in -durandal路由器 – BGZ