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只能指向有的js需要配置?通过谷歌搜索,仍然无法决定如何在多个页面和脚本上使用,需要一些指导来清除我的想法

更新: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">

我已经重新浏览了每一个教程和页面,并得出了这样的结果,这样的代码是否正确?但它遇到错误,除非我从源代码中删除外部脚本

4

2 回答 2

2

RequireJS 通常需要在它使用的每个页面上进行配置调用。我说通常是因为您有时可以摆脱默认值,但通常(尤其是使用 jQuery)您需要设置pathsshim

首先,我没有遇到需要两个main.js文件的情况,请问您为什么会这样,因为您的代码示例显示几乎相同的代码?

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

您可能希望再次浏览文档以了解我的意思。

如果您需要两个不同的主文件(也许您想在页面上初始化不同的模块),那么使用不同的 JS 文件来执行此操作。比如 page1.js 或 page2.js 那一require组不同的模块。Main 应该用于配置和加载所有页面上的通用模块。这个答案揭示了这个过程

于 2013-05-22T14:34:13.510 回答
0

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

于 2013-05-22T06:26:17.873 回答