【问题标题】:Durandal viewLocator/compose binding redundantly reports a 404 errorDurandal viewLocator/compose绑定冗余报404错误
【发布时间】: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


    【解决方案1】:

    有点晚了,但从同样的问题,我找到了避免 RequireJS 404 的解决方案: 您必须向名为 getView() 的组合对象(folderTree、fileList...)添加一个成员函数。该成员可以返回一个字符串来解释为视图 url,如下所述: http://durandaljs.com/documentation/View-Location.html 祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-09
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      • 2014-05-12
      • 2014-07-05
      • 1970-01-01
      相关资源
      最近更新 更多