我有一个我在视图中显示的联系人组列表。当我单击联系人组时,我想更改当前哈希并加载关联的联系人。
说,我有 3 个联系人组
全部(无 ID)
朋友(ID := 1)
家庭(ID := 2)
其他(编号:= 3)
如果我单击好友,则 url 需要更改为 #/people/1 并且需要使用参数 (Id = 1) 调用回调。如果单击全部,则不应传递任何 ID (#/people) 以加载所有联系人。
就像是:
router.when("#/people/:id", function (routeData) {
console.log(routeData.Id); //Output: 1
// Load contacts by id
});
router.when("#/people", function () {
// Load all contacts
});
function onContactGroupClick(contactGroup) {
router.navigateToWithoutReset("#/people/" + contactGroup.Id);
}
原因是,我希望有一个中心位置,无论是通过代码还是手动进行调用(更改 URL,或单击超链接)都无关紧要。
一个很好的例子是 Gmail/Contacts
如果我使用 DurandalJS 的 router.navigateTo,整个视图模型将被重新加载。有没有办法用 DurandalJS 做到这一点但不刷新视图模型?