3

我想看看是否有办法在 Durandaljs 做区域

类似的东西

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

我看到 viewLocator 允许这种约定:

 viewLocator.useConvention('viewmodels', 'views', 'areas');

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

是否有适当的方法来解释这一点,文档在这方面很简单。

4

1 回答 1

2

是的,你可以这样做。

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

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

至于找到绑定到您的视图模型的视图,那么您可以像上面那样......更改视图定位器约定。

于 2013-03-19T23:01:43.493 回答