【问题标题】:Requirejs loading racing issue in MVC .NETRequirejs 在 MVC .NET 中加载赛车问题
【发布时间】:2014-06-22 03:11:46
【问题描述】:

我在 .NET 5 MVC 框架上使用带有淘汰赛的 requirejs,这就是我布置应用程序的方式。

这是我的 _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 无法加载淘汰赛和 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 

【问题讨论】:

    标签: javascript asp.net-mvc asp.net-mvc-4 knockout.js requirejs


    【解决方案1】:

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

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

    看到这个http://requirejs.org/docs/api.html#data-main

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-11
      • 1970-01-01
      • 2012-12-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-06
      • 2014-07-24
      • 1970-01-01
      相关资源
      最近更新 更多