我有一個視圖,它由具有添加/編輯功能的另一視圖(子視圖)組成,現在我想使用路由,以便在單擊添加一個新視圖(添加)時顯示替換原來的觀點,我一直在使用子路由器嘗試,但它不工作...子視圖使用Durandal的構圖
殼牌是我安裝我的路由器將用戶引導至脈衝查看我的第一個觀點 -
function boot() {
datacontext.getstartupdata().then(function() {
log('Helium SPA Loaded!', null, true);
router.on('router:route:not-found', function (fragment) {
logError('No Route Found', fragment, true);
});
return router.makeRelative({ moduleId: 'viewmodels' }) // router will look here for viewmodels by convention
.map([{ route: '', moduleId: 'pulse', title: 'Pulse', nav: true }]) // Map the routes
.buildNavigationModel() // Finds all nav routes and readies them
.activate('');
// Activate the router
});
}
現在在脈衝視圖HTML我有 -
<article class="tasks-container" >
<!--ko router: { transition:'entrance' }--><!--/ko-->
</article>
,並在視圖模型(.js文件)的文件我有 -
var childRouter = router.createChildRouter()
.makeRelative({
moduleId: 'viewmodels'
}).map([
{ route: '', moduleId: 'tasklist', title: 'Task List', nav: true },
{ route: 'tasklist', moduleId: 'tasklist', title: 'Task List', nav: true },
{ route: 'newTask', moduleId: 'newTask', title: 'New Task', nav: true},
{ route: 'newTask/:taskId', moduleId: 'newTask', title: 'Edit Task', nav: true }
]).buildNavigationModel();
var pulse = {
activate: activate,
compositionComplete: compositionComplete,
router: childRouter
};
return pulse;
所以任務列表是脈視圖綁定爲每KO在HTML結合,但現在 在任務列表視圖模型,當我嘗試導航到新任務視圖 -
var showNewTask = function() {
var url = '#newTask/';
router.navigate(url, { trigger: true, replace: false });
};
我得到一個「路線Not Found」錯誤,請幫忙
你可以舉一個你的代碼的例子嗎? – chafnan
我用代碼更新了我的問題 – akhil