gpt4 book ai didi

javascript - MVC .NET 中的 Requirejs 加载竞赛问题

转载 作者:行者123 更新时间:2023-11-28 08:16:56 25 4
gpt4 key购买 nike

我在 .NET 5 MVC 框架上使用 requirejs 和 knockout ,这就是我布局应用程序的方式。

这是我的_Layout.cshtml,这很正常

<head></head>
<body>

<div class="wrapper">
// body stuff
</div>
<script type="text/javascript" src="@Url.Action("Constants", "Configuration")"></script>
<script src="~/Scripts/vendors/requirejs/require.js" data-main="@Url.Content("~/Scripts/app/main")"></script>
@RenderSection("scripts", required: false)

</body>

然后每个需要使用knockoutjs的页面我都会做这样的事情。

@section scripts
{
<script>
require(['app', 'viewmodels/search/search'], function (app, contentModule) {
app.render(contentModule);
});
</script>
}

这是我的app.js,用于激活knockoutjs

define('app', ['require'], function (localRequire) {

var app = {
render: function(module) {
localRequire(['knockout', 'zepto'], function(ko, $) {
$(document).ready(function() {
ko.cleanNode($('.wrapper')[0]);
ko.applyBindings(module, $('.wrapper')[0]);
});
});
}
};

return app;

});

一切看起来都很好,但是,有时我会收到此错误,即 requirejs 无法加载 knockout 和 zepto,我认为这与某些赛车条件有关。这种情况并不是每次都会发生。

GET http://localhost:91/Scripts/app/knockout.js 404 (Not Found) require.js:1895
Uncaught Error: Script error for: knockout
http://requirejs.org/docs/errors.html#scripterror require.js:166
GET http://localhost:91/Scripts/app/zepto.js 404 (Not Found) require.js:1895
Uncaught Error: Script error for: zepto
http://requirejs.org/docs/errors.html#scripterror

最佳答案

您应该在主脚本(data-main 属性中指定的脚本)内调用 require()。

主脚本是异步调用的,因此可以在配置 RequireJS 之前调用页面中的 require() 函数。

查看此http://requirejs.org/docs/api.html#data-main

关于javascript - MVC .NET 中的 Requirejs 加载竞赛问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23478882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com