我需要重构我的Aurelia应用程序以使其更具可扩展性。我的src/
文件夹中有几个视图和视图模型。
我想知道是否可以将两者分开:
src/views/
src/view-models/
然后在这两个目录的每个目录中,进一步分开如:
src/views/admin/admin.html
src/view-models/admin/admin.js
src/views/user/user.html
src/view-models/user/user.js
答案 0 :(得分:2)
视图和视图模型是否必须位于同一位置?
不一定。它更像是约定/推荐而不是约束。文档包含有关如何customize conventions的一些详细信息。
示例main.js
这会覆盖所有内容,但您可以自由地部分覆盖视图路径。
E.g。 if (moduleId.indexOf('specific-module-name') !== -1) ...
export function configure(aurelia) {
aurelia.use
.standardConfiguration();
// locator override
ViewLocator.prototype.convertOriginToViewUrl = (origin) => {
let moduleId = origin.moduleId,
id = (moduleId.endsWith('.js') || moduleId.endsWith('.ts')) ? moduleId.substring(0, moduleId.length - 3) : moduleId,
viewPath = id.replace('view-models/', 'views/') + '.html';
return viewPath;
};
aurelia.start().then(() => aurelia.setRoot());
}
答案 1 :(得分:0)
答案 2 :(得分:0)
是的,默认情况下,Aurelia会强制您对视图和视图模型使用相同的名称。但您也可以使用compose元素从不同的文件夹中选择模型和数据模型
E.g。
<compose view-model="./src/view-model/some-view" model.bind="./src/model/some-view" />