【问题标题】:Infuser is not defined注入器未定义
【发布时间】:2014-02-20 01:33:35
【问题描述】:

我正在尝试使用 Knockout 外部模板插件。 Firefox 在我的 util.js 中停止了这一行:infuser.defaults.templateUrl = "/CAS/templates";

它抱怨注入器未定义。如果我只是在 Firebug 中按继续,视图会加载并加载模板就好了。如果我将该行注释掉,则模板不会加载,并且会出现文件未找到错误。因此,尽管未定义注入器,但该设置仍在工作。这是加载的订单内容。

            bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
            "~/Scripts/external/jquery-{version}.js",
            "~/Scripts/external/jquery-ui-1-10.2.js",
            "~/Scripts/external/jquery.unobtrusive*",
            "~/Scripts/external/jquery.validate*"));

        bundles.Add(new ScriptBundle("~/bundles/knockout").Include(
            "~/Scripts/external/knockout-{version}.js",
            "~/Scripts/external/koExternalTemplateEngine_all.js",
            "~/Scripts/local/utils.js",
            "~/Scripts/external/knockout.mapping-latest.js"));

        bundles.Add(new ScriptBundle("~/bundles/local").Include(
        "~/Scripts/local/ajaxservice.js",
        "~/Scripts/local/DMS.CAS.Dataservice.js",
        "~/Scripts/local/DMS.CAS.ViewModel.js",
        "~/Scripts/local/DMS.Models.js"));

这是视图中的绑定:

<div data-bind="template: {name: 'HelloWorld'}"></div>

我的jQuery版本是2.0.3,KO版本是2.3.0,KO External Template插件是1天前通过nuGet安装的。我一直认为这是订单脚本文件以错误的顺序加载的问题。但是,情况似乎并非如此。任何帮助表示赞赏。

【问题讨论】:

    标签: templates knockout.js


    【解决方案1】:

    您需要在 koExternalTemplateEngine_all.js 之前将 infuser.js 放入 Knockout 包中:

    bundles.Add(new ScriptBundle("~/bundles/knockout").Include(
            "~/Scripts/external/knockout-{version}.js",
            "~/Scripts/external/infuser.js",
            "~/Scripts/external/koExternalTemplateEngine_all.js",
            "~/Scripts/local/utils.js",
            "~/Scripts/external/knockout.mapping-latest.js"));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-26
      • 2017-08-14
      相关资源
      最近更新 更多