Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 如何使用requireJs获取Backbone.marionete.Application_Backbone.js_Requirejs_Marionette - Fatal编程技术网

Backbone.js 如何使用requireJs获取Backbone.marionete.Application

Backbone.js 如何使用requireJs获取Backbone.marionete.Application,backbone.js,requirejs,marionette,Backbone.js,Requirejs,Marionette,我决定将我的web应用程序划分为不同的应用程序(app1,app2) 为什么从js/app1.js我得到未定义的? 我应该如何使用requirejs从app1访问mainApp 这是我的密码: js/main.js require([ 'js/app', 'js/app1/app1', 'js/app2/app2' ], function (App) { "use strict"; App.initialize(); }); define([''],

我决定将我的
web应用程序
划分为不同的
应用程序
(app1,app2)

为什么从
js/app1.js
我得到
未定义的

我应该如何使用requirejs从app1访问mainApp

这是我的密码:


js/main.js

require([
    'js/app',
    'js/app1/app1',
    'js/app2/app2'
],
function (App)
{
    "use strict";
    App.initialize();
});
define([''],
function(app)
{
    var mainApp = new Backbone.Marionette.Application();

    mainApp.start();

    mainApp.initialize = function() {
        Backbone.history.start();
    }

    return  mainApp;
});
define(['js/mainApp],
function(app)
{
    console.log(app); // undefined
});
define(['jquery', 'underscore', 'backbone', 'backbone.marionette'],
function($, _, Backbone)
{
    var mainApp = new Backbone.Marionette.Application();

    // Make sure main app is not undefined here.
    console.log('mainApp:', mainApp);  

    mainApp.start();

    mainApp.initialize = function() {
        Backbone.history.start();
    };

    return  mainApp;
});

js/mainApp.js

require([
    'js/app',
    'js/app1/app1',
    'js/app2/app2'
],
function (App)
{
    "use strict";
    App.initialize();
});
define([''],
function(app)
{
    var mainApp = new Backbone.Marionette.Application();

    mainApp.start();

    mainApp.initialize = function() {
        Backbone.history.start();
    }

    return  mainApp;
});
define(['js/mainApp],
function(app)
{
    console.log(app); // undefined
});
define(['jquery', 'underscore', 'backbone', 'backbone.marionette'],
function($, _, Backbone)
{
    var mainApp = new Backbone.Marionette.Application();

    // Make sure main app is not undefined here.
    console.log('mainApp:', mainApp);  

    mainApp.start();

    mainApp.initialize = function() {
        Backbone.history.start();
    };

    return  mainApp;
});

js/app1/app1.js

require([
    'js/app',
    'js/app1/app1',
    'js/app2/app2'
],
function (App)
{
    "use strict";
    App.initialize();
});
define([''],
function(app)
{
    var mainApp = new Backbone.Marionette.Application();

    mainApp.start();

    mainApp.initialize = function() {
        Backbone.history.start();
    }

    return  mainApp;
});
define(['js/mainApp],
function(app)
{
    console.log(app); // undefined
});
define(['jquery', 'underscore', 'backbone', 'backbone.marionette'],
function($, _, Backbone)
{
    var mainApp = new Backbone.Marionette.Application();

    // Make sure main app is not undefined here.
    console.log('mainApp:', mainApp);  

    mainApp.start();

    mainApp.initialize = function() {
        Backbone.history.start();
    };

    return  mainApp;
});

对于require.js,如果所需文件中有一个错误,有时它不会显示为错误,但返回值将变得未定义。在您的情况下,
js/app1/app1.js
中的
app
未定义,很可能是由于
js/mainApp.js
中的错误

仅根据您提供的代码,
js/mainApp.js
有一个带有空字符串的
define
语句,但希望将
App
传递给它的函数。尝试删除空字符串,只需将空列表(
[]
)传递给
定义
,而不将
应用程序
传递给该函数

如果您的实际代码没有这些语法问题,但仍有
未定义
,请更新问题中的代码片段

试试这个:

js/mainApp.js

require([
    'js/app',
    'js/app1/app1',
    'js/app2/app2'
],
function (App)
{
    "use strict";
    App.initialize();
});
define([''],
function(app)
{
    var mainApp = new Backbone.Marionette.Application();

    mainApp.start();

    mainApp.initialize = function() {
        Backbone.history.start();
    }

    return  mainApp;
});
define(['js/mainApp],
function(app)
{
    console.log(app); // undefined
});
define(['jquery', 'underscore', 'backbone', 'backbone.marionette'],
function($, _, Backbone)
{
    var mainApp = new Backbone.Marionette.Application();

    // Make sure main app is not undefined here.
    console.log('mainApp:', mainApp);  

    mainApp.start();

    mainApp.initialize = function() {
        Backbone.history.start();
    };

    return  mainApp;
});

不要忘记为JS库提供正确的路径。

对于require.JS,如果其中一个所需文件中存在错误,有时它不会显示为错误,但返回值会变得未定义。在您的情况下,
js/app1/app1.js
中的
app
未定义,很可能是由于
js/mainApp.js
中的错误

仅根据您提供的代码,
js/mainApp.js
有一个带有空字符串的
define
语句,但希望将
App
传递给它的函数。尝试删除空字符串,只需将空列表(
[]
)传递给
定义
,而不将
应用程序
传递给该函数

如果您的实际代码没有这些语法问题,但仍有
未定义
,请更新问题中的代码片段

试试这个:

js/mainApp.js

require([
    'js/app',
    'js/app1/app1',
    'js/app2/app2'
],
function (App)
{
    "use strict";
    App.initialize();
});
define([''],
function(app)
{
    var mainApp = new Backbone.Marionette.Application();

    mainApp.start();

    mainApp.initialize = function() {
        Backbone.history.start();
    }

    return  mainApp;
});
define(['js/mainApp],
function(app)
{
    console.log(app); // undefined
});
define(['jquery', 'underscore', 'backbone', 'backbone.marionette'],
function($, _, Backbone)
{
    var mainApp = new Backbone.Marionette.Application();

    // Make sure main app is not undefined here.
    console.log('mainApp:', mainApp);  

    mainApp.start();

    mainApp.initialize = function() {
        Backbone.history.start();
    };

    return  mainApp;
});

不要忘记为JS库提供正确的路径。

+1感谢您的时间。实际上,我很确定我的js文件中没有错误。我重写了我的问题。请看一看。+1谢谢你抽出时间。实际上,我很确定我的js文件中没有错误。我重写了我的问题。请看一看。