【发布时间】:2015-10-23 13:09:18
【问题描述】:
我正在编写一组视图和视图模型,Durandal 在错误的位置查找其中一个视图,生成 404 错误(以及 HTML 中可怕的红色文本消息,说明无法找到视图)和然后一两秒后在正确的位置寻找视图并正确渲染它。
我什至不知道从哪里开始解决此问题,因为我正在以完全相同的方式在屏幕上组合其他四个元素并且它们的行为正确。
父视图如下所示:
<div class="file-browser-container" data-bind="busy: folderTree.folderRootChanging">
{{#compose {model: entityContext, view: 'views/contextSelector.html' }}}
{{/compose}}
<div class="file-pane-container u-clearfix" data-bind="if: entityContext.selectedAccount">
{{#compose {model: folderTree, view: 'views/folderTree.html', activationData: entityContext.selectedAccount} }}{{/compose}}
{{#compose {model: fileList, view: 'views/fileList.html'} }}{{/compose}}
{{#compose {model: fileUpload, view: 'views/fileUpload.html', activationData: { folderTree: folderTree, fileListing: fileList}} }}{{/compose}}
</div>
folderTree.html 视图然后执行以下附加撰写:
<section class="folder-view-pane" data-bind="busy: folderTreeUpdating">
<h4>Available Folders</h4>
<ul class="folder-node" data-bind="">
{{#compose {model: currentFolderRoot, view: 'views/partial/folderNode.html', preserveContext: true}}}{{/compose}}
</ul>
我正在使用 knockout.punches(但请相信我,我也尝试过使用标准 ko 无容器语法,这不是问题。)
folderNode 组合不起作用,durandal\require 出去寻找“base/app/views/views/partial/folderNode.html”中错误的视图,然后在“ base/app/views/partial/folderNode.html”,因此当视图从错误变为渲染视图时,我们的用户会获得非常粗糙的闪光效果。
我已尝试将 view/html 与其他视图一起移到视图目录中,但没有任何区别。令人恼火的是,当我更改构图以查找视图时:'partial/folderNode.html' 需要然后去查看 'base/app/partial/folderNode.html' 并且完全失败。
你知道为什么 Durandal 会选择找错地方吗?是否与此组合在另一个组合元素内有关?
最后,我们使用:
viewLocator.useConvention();
在 main.js 文件中。
【问题讨论】:
标签: javascript durandal