我有代理列表並希望對其中的每一個做一些事情。對於「做某事」,我查看了代理列表,嵌套父視圖,處理導航以及代表導航的子視圖集。重新導航後路由器鏈路不再更新
最頂層視圖視圖模型:
configureRouter(config: RouterConfiguration, router: Router) {
config.title = 'Agents';
config.map([
{ route: '', name: 'dummy', moduleId: 'components/agents-components/dummy', nav: false },
{ route: ':id', name: 'agent', moduleId: 'components/agents-components/agent-details', nav: false }
]);
this.router = router;
}
查看「僞」時沒有選擇劑顯示。
代理的詳細信息,查看視圖模型:
configureRouter(config: RouterConfiguration, router: Router) {
config.title = '';
config.map([
{ route: 'info', name: 'agent-info', moduleId: 'components/agents-components/agent-info', title: 'Info', nav: true },
{ route: 'add', name: 'agent-add', moduleId: 'components/agents-components/agent-add', title: 'Add', nav: true }
]);
this.router = router;
}
和HTML:
<li repeat.for="row of router.navigation" class="${row.isActive ? 'active' : ''}">
<a href.bind="row.href">${row.title}</a>
</li>
URL方案類似/代理商/ 764 /信息或/代理商/ 764 /加
後點擊代理#764我從代理詳情視圖中顯示路線「信息」並使用
activate(params) {
this.id = params.id;
}
獲取代理人的ID。一切正常,代理細節視圖中的鏈接是正確的,幷包含當前代理的ID(/ agents/764/info和/ agents/764/add),我可以選擇標籤「添加」並執行一些操作。
但是,然後我點擊其他代理,地址欄中的網址變爲/代理/ 765 /信息,並在信息的激活(PARAMS)我得到正確的ID。但是,配置代理詳情視圖的路由器並不會調用html鏈接,而是在html still/agents/764/info和/ agents/764/add中鏈接。所以當我點擊鏈接「添加」時,我將添加以前代理的視圖。
我該如何解決它?有什麼辦法強制重新呈現代理細節視圖?或者我應該手動修復agent-details activate()中的路由,甚至在html中將鏈接綁定到手動創建的屬性而不是router.navigation?