我正在尝试看看是否有办法在Durandaljs中做区域

遵循以下原则

/App/areas/home
                /views
                /viewmodels
          /other
                /views
                /viewmodels

我看到viewLocator允许这种约定:
 viewLocator.useConvention('viewmodels', 'views', 'areas');

但router.useConvention()似乎默认为相同路径。

有没有适当的方法来解决这个问题,有关这方面的文档很少。

最佳答案

是的,您可以这样做。

由于您使用的是Durandal.router,因此可以通过覆盖路由器autoConvertRouteToModuleId来使用约定在哪里找到ViewModels,如下所示:

router.autoConvertRouteToModuleId = function(url, params) {
    return url + '/' + 'params[0]';
};

至于查找绑定到您的视图模型的视图,则可以像上面一样。.更改viewlocator约定。

10-08 10:59