gpt4 book ai didi

durandal - 在 durandal 2.0 中定义起始模块并导航到它

转载 作者:行者123 更新时间:2023-12-01 18:44:20 27 4
gpt4 key购买 nike

在我看来......这种方式的初始路线是通过以下方式定义的:

{ route: '', moduleId: 'viewmodels/customers', title: 'customers', nav: true },

当应用程序加载路由 '' 时,该路由必须奇怪地设置为空,然后首先加载该路由。

当我现在导航到 mysite/#/customers 时,没有加载任何内容。

如何为我的路线提供一个可用于导航到它的起始模块?

在旧路由器中我使用了 startModule 但我在 durandal 2.0 中找不到它。

最佳答案

您可能需要使用相同的 moduleId 设置第二条路线。这是使用此 http://dfiddle.github.io/dFiddle-2.0/#hello 的子路由的实例和 http://dfiddle.github.io/dFiddle-2.0

define(['plugins/router', 'durandal/system', 'global', 'knockout'], function( router, system, global, ko ) {
var childRouter = router.createChildRouter()
.makeRelative({
moduleId: 'hello',
route: 'hello'
}).map([
{route: '', moduleId: 'default/index', title: 'Hello World', type: 'intro'},
{route: 'default', moduleId: 'default/index', title: 'Hello World', type: 'intro', nav: true},
{route: 'dFiddle', moduleId: 'dFiddle/index', title: 'Hello World', type: 'fiddle', nav: true}
]).buildNavigationModel();

// .on is mixed in an not meant to be chainable
childRouter.on('router:navigation:complete').then(global.createSampleLink);

return {
global: global,
router: childRouter,
getItemsByCategoryId: function( categoryId ) {
return ko.utils.arrayFilter(childRouter.navigationModel(), function( route ) {
return route.type === categoryId;
});
},
binding: function() {
system.log('Lifecycle : binding : hello/index');
return { cacheViews: false }; //cancels view caching for this module, allowing the triggering of the detached callback
}
};
});

这种在所有顶级路由上都有子路由的特定设置使用 shell.js 中的 router.guardRoute 来处理空根情况。有一张未结票https://github.com/BlueSpire/Durandal/issues/240讨论了如何更好地处理这类边缘情况。

define(['plugins/router'], function (router) {

// Redirecting from / to first route
router.guardRoute = function(routeInfo, params, instance){
if (params.fragment === ''){
return routeInfo.router.routes[0].hash;
}
return true;
};

return {
router: router,
activate: function () {
router.map([
{ route: '', moduleId: 'hello/index', title: 'Hello World' },
{ route: 'hello*details', hash: '#hello', moduleId: 'hello/index', title: 'Hello World', nav: true },
...
]).buildNavigationModel();

return router.activate();
}
};
});

关于durandal - 在 durandal 2.0 中定义起始模块并导航到它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17932278/

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