2013-05-22 27 views
0
//main.js 
    require.config({ 
     baseUrl: '../Scripts/lib/', 
     paths: { 
      'jquery': 'jquery-2.0.0', 
     } 
    }); 

define(['jquery', '../test1'], function ($, object) { 
    $(document).ready(function() { 
     $('#button').bind('click', function() { 
      object.getsomething(); 
     }); 
    }); 
}); 
// 

//main1.js 
    require.config({ 
     baseUrl: '../Scripts/lib/', 
     paths: { 
      'jquery': 'jquery-2.0.0', 
     } 
    }); 

define(['jquery', '../test1'], function ($, object) { 
    $(document).ready(function() { 
     $('#button').bind('click', function() { 
      object.getsomething2(); 
     }); 
    }); 
}); 
// 
//test1.js 
define(function() { 
    return { 
     getsomething: function(){ 
      $('#button').css({'background-color':'#000'}) 
     }, 
     getsomething2: function(){ 
      $('#button').css({'background-color':'#000'}) 
     } 
    } 
    //return shit; 
}); 
// 

//Default1.aspx 
<script data-main="<%: ResolveUrl("~/Scripts/main.js") %>" src="<%: ResolveUrl("~/Scripts/lib/require.js") %>"></script> 

//Default2.aspx 
<script data-main="<%: ResolveUrl("~/Scripts/main1.js") %>" src="<%: ResolveUrl("~/Scripts/lib/require.js") %>"></script> 

是否需要在每个想要使用jQuery的页面中声明require.config?我不能分享在不同的页面使用main.js吗?我现在有点迷路了,我认为它应该在所有页面中共享require.config,并且每个页面都应该有自己的js,并且requirejs将帮助放置我想要的东西,因为requirejs只能指向具有require.config?通过谷歌搜索,仍然无法弥补我对如何将多个页面和文字上使用的头脑,需要一些指导,以清除我的脑海require.config必须在每个页面中声明?

更新:1

//main.js 
    require.config({ 
     baseUrl: '../Scripts/lib/', 
     paths: { 
      'jquery': 'jquery-2.0.0', 
     } 
    }); 
}); 
// 

//Scripts/script1.js 
define("main",['jquery', '../test1'], function ($, object) { 
    $(document).ready(function() { 
     $('#button').bind('click', function() { 
      object.getsomething(); 
    }); 
}); 
// 


//Scripts/script2.js 
define(['jquery', '../test1'], function ($, object) { 
    $(document).ready(function() { 
     $('#button').bind('click', function() { 
      object.getsomething2(); 
    }); 
}); 

//test1.js 
define(function() { 
    return { 
     getsomething: function(){ 
      $('#button').css({'background-color':'#000'}) 
     }, 
     getsomething2: function(){ 
      $('#button').css({'background-color':'#000'}) 
     } 
    } 
    //return shit; 
}); 
// 

//Default1.aspx 
<script data-main="<%: ResolveUrl("~/Scripts/main.js") %>" src="<%: ResolveUrl("~/Scripts/lib/require.js") %>"></script> 
<script src="./Scripts/script1.js"> 

//Default2.aspx 
<script data-main="<%: ResolveUrl("~/Scripts/main.js") %>" src="<%: ResolveUrl("~/Scripts/lib/require.js") %>"></script> 
<script src="./Scripts/script2.js"> 

我再经历一次每一个教程和页面,并出现这样的代码,这样的代码是正确的吗?但它命中错误,除非我从源中删除外部脚本

回答

0

不,您不必在所有页面中声明require.config。

+0

那么如何?任何样品? – Se0ng11

+0

试试这个:https://github.com/addyosmani/Backbone_RequireJS – Logan

2

RequireJS通常需要在每个页面上使用配置调用。我说一般,因为有时你可以逃脱的默认值,但往往不是(尤其是使用jQuery),你将需要设置pathsshim

首先,我没有遇到过,我需要的地方的情况下,两个main.js文件,我可以问你为什么你的代码示例显示几乎相同的代码?

您不应该在您的main.js中拨打define()来电。模块应该存在于他们自己的文件中,并且你的main.js应该require他们并且调用任何设置代码。

您可能希望browse the documentation again明白我的意思。

如果你需要两个不同的主文件(也许你想在页面上初始化不同的模块),然后使用不同的JS文件来做到这一点。如page1.js或page2.js表示require不同的一组模块。 Main应该用于配置和加载在所有页面上找到的通用模块。 This answer sheds some light on that process