在使用durandal的SPA中使用多个版本的jquery

时间:2015-02-03 08:03:15

标签: jquery knockout.js requirejs single-page-application durandal

我正在使用durandal和knockout并且需要使用SPA。但是我有一个依赖于jquery-latest.js的脚本,我不再使用它了。但是,在SPA环境之外测试时,jquery-1.4.2.js似乎适用于我的脚本,但我也使用1.9.1来处理SPA中的大部分内容。有没有办法使用这两个版本?我将如何在main.js中引用它们:目前我一直在做:

    'text'              : '../scripts/text',
    'durandal'          : '../scripts/durandal',
    'plugins'           : '../scripts/durandal/plugins',
    'transitions'       : '../scripts/durandal/transitions',
    'ko'                : '../scripts/knockout-3.1.0.debug',
    'jquery-latest'     : '../scripts/jquery-latest',//try-not allowed/want 1.4.2 instead
    'jquery'            : '../scripts/jquery-1.9.1',

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

试一试。这将包括第一页加载的所有依赖项,并且您将能够使用它们中的每一个。并将其命名为BundleConfig.cs

using System;
using System.Web.Optimization;

namespace NameXyz
{
public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.IgnoreList.Clear();
        AddDefaultIgnorePatterns(bundles.IgnoreList);

        bundles.Add(
          new ScriptBundle("~/scripts/vendor")
            .Include("~/scripts/jquery-{version}.js")
            .Include("~/scripts/knockout-{version}.debug.js")
            .Include("~/scripts/toastr.js")
            .Include("~/scripts/Q.js")
            .Include("~/scripts/breeze.debug.js")
            .Include("~/scripts/bootstrap.js")
            .Include("~/scripts/moment.js")
          );

        bundles.Add(
          new StyleBundle("~/Content/css")
            .Include("~/Content/ie10mobile.css")
            .Include("~/Content/bootstrap.css")
            .Include("~/Content/bootstrap-responsive.css")
            .Include("~/Content/durandal.css")
            .Include("~/Content/toastr.css")
            .Include("~/Content/app.css")
          );
    }

    public static void AddDefaultIgnorePatterns(IgnoreList ignoreList)
    {
        if (ignoreList == null)
        {
            throw new ArgumentNullException("ignoreList");
        }

        ignoreList.Ignore("*.intellisense.js");
        ignoreList.Ignore("*-vsdoc.js");

        //ignoreList.Ignore("*.debug.js", OptimizationMode.WhenEnabled);
        //ignoreList.Ignore("*.min.js", OptimizationMode.WhenDisabled);
        //ignoreList.Ignore("*.min.css", OptimizationMode.WhenDisabled);
    }
}

}

现在转到Global.asax,如果没有创建它

using System.Web;
using System.Web.Http;
using System.Web.Mvc;

using System.Web.Optimization;
using System.Web.Routing;

namespace NameXyz
{
    // Note: For instructions on enabling IIS6 or IIS7 classic mode, 
    // visit http://go.microsoft.com/?LinkId=9394801

    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }
}