我有一个需要有条件地填充的视图。
场景: 经理将在屏幕 B 上选择一个用户名,然后将导航到用户填写 EG 的同一表格。屏幕 A,但该经理可以选择批准或拒绝用户的请求。
我已经看到,在我的屏幕上的 VM 中,AI 可以执行以下操作。
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;
});
我的问题是我不确定最好的方法/或如何让 Durandal 从 B 导航到页面 A ......我做对了吗?因为感觉有点“hacky”