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