0

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 外部テンプレート プラグインは 1 日前に nuGet 経由でインストールされました。私はこれを、順序スクリプト ファイルが間違った順序でロードされる問題として追求しました。しかし、そうではないようです。どんな助けでも大歓迎です。

4

1 に答える 1

0

koExternalTemplateEngine_all.jsの前にinfuser.jsKnockoutバンドルに入れる必要があります。

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"));
于 2014-02-19T17:33:35.290 に答える