我遇到了绑定表达式的问题,例如
<div data-bind="text: $data.Property"></div>
- 其中Property
是一个可观察的 - 导致挖掘的可观察函数的实际文本显示而不是值Property
应该表示的值。这是在In IE8, KnockoutJS 3.2 displaying actual observable function rather than the observable's value处理的。
该问题的原因是正在加载重复的淘汰库文件。 “更新:”部分和链接的SO问题的答案包括一些细节。
我现在需要知道如何防止敲除库被加载两次。 强调已加载而不仅仅是执行。到目前为止,我还没有找到任何可以解决此问题的内容。
RequireJS:由网站使用,但不是由调查页面使用。
SignalR:由页面使用。我对SignalR有点不熟悉,所以我不能说这会导致多次加载的可能性。
Ajax:也可以使用,但它用于接收JSON数据。
只有1个明确的引用淘汰库。
查看网络选项卡,第一个文件是从IE的speculative download功能加载的。第二个文件来自主解析器。第一个文件已完全下载,然后第二个文件已完全下载。
我无法弄清楚的是一种保留方式:
此时,上述解决方案之一是可以接受的。任何人都可以提供见解,建议或知道解决方案吗?
答案 0 :(得分:0)
我终于搞清楚了。问题是脚本在页面中列出的顺序。 ASP.NET MVC 5支持可渲染的命名部分。在这种情况下scripts
:
布局 -
@RenderSection("scripts", required: false)
观点/部分观点 -
@section scripts {
// script includes ...
}
在我的情况下,部分视图不包含scripts
部分中的脚本,导致它们被预分析器和主解析器解析/下载。
以正确的顺序将所有脚本添加到scripts
部分可以解决此问题。订单已由脚本的依赖项决定。