Infuser未定义

时间:2013-10-14 19:34:55

标签: templates knockout.js

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

它抱怨infuser未定义。如果我只是在Firebug中按下继续,视图就会加载并加载模板。如果我评论该行,模板不会加载,我得到一个文件未找到错误。因此,尽管没有定义infuser,但设置仍然有效。这是订单内容被加载。

            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外部模板插件是在1天前通过nuGet安装的。我已经将此问题作为订单脚本文件以错误顺序加载的问题。但是,情况似乎并非如此。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

您需要在 koExternalTemplateEngine_all.js 之前将 infuser.js 放入淘汰赛捆绑包中:

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"));