gpt4 book ai didi

javascript - 带参数的 Durandal 路由

转载 作者:行者123 更新时间:2023-12-02 17:14:19 25 4
gpt4 key购买 nike

我有一个 Durandal 应用程序,其路由如下。

activate: function () {
return router.map([{
route: 'friends',
moduleId: 'viewmodels/friends',
nav: true
}, {
route: 'about',
moduleId: 'viewmodels/about',
nav: true
}, {
route: '(:id)',
title: 'TimeLine',
moduleId: 'viewmodels/Posts',
nav: true
}, ]).buildNavigationModel()
.activate();

但是每次我们导航到“ friend ”或“关于”时,它都会转到“viewmodel/Post”,其中“ friend ”和“关于”关键字是“id”。我无法转到“viewmodels/ friend ”和“viewmodels/about”。有人可以帮助我吗?

最佳答案

确保在 viewmodels/ 中您有一个名为 posts.js 的文件,并且您的 moduleId 不是 moduleId: 'viewmodels/posts' moduleId: 'viewmodels/Posts'posts.js 必须相同

将代码更改为:

activate: function () {
return router.map([{
route: ['', 'friends'],//this is the home route ['', 'routeName']
moduleId: 'viewmodels/friends',
nav: true
}, {
route: 'about',
moduleId: 'viewmodels/about',
nav: true
}, {
route: 'posts/(:id)',// and change this from (:id) to posts/:id or posts/(:id)
title: 'TimeLine',
moduleId: 'viewmodels/posts',
nav: true
}, ]).buildNavigationModel()
.activate();

在您的 posts.js 中,您可以像这样访问 id

var postId;
function activate(id) {
postId = id;
logger.log(viewModel.title + "'s View Activated", null, viewModel.title, true);
return true;
}

function attached(view, parent) {
alert(postId);
}

var viewModel = {
activate: activate,
title: 'singlePost',
attached: attached
}

return viewModel;

了解更多关于 Mapping Routes

关于javascript - 带参数的 Durandal 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24572515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com