gpt4 book ai didi

javascript - Backbone 错误 View 不是构造函数

转载 作者:行者123 更新时间:2023-11-29 17:00:46 25 4
gpt4 key购买 nike

我尝试使用 Backbone 制作身份验证应用。

我的 main.js。应用开始的地方:

require(['backbone', './views/AppView'], function (Backbone, AppView) {
'use strict';

var App = new AppView();
App.render();
);

我之前已经用 requirejs 声明了我的库。我的 AppView.js :

define (['backbone', 'Login', './home/HomeView', './login/LoginView'], function (Backbone, Login, HomeView, LoginView) {
'use strict';

var AppView = Backbone.View.extend({

el : 'body',

initialize : function () {
console.log('init Appview');
if (Login.isConnected()) {
//Utilisateur connecté
this.view = new HomeView();
}
else{
//Utilisateur pas connecté
this.view = new LoginView();
}
},

render : function () {
this.$el.html(this.view.render().$el);
return this;
}
});
return AppView;
});

在这里我检查用户是否已连接。如果他是:AppView,如果他不是:LoginView。目前一切正常,LoginView 出现。

登录 View :

define(['backbone', 'underscore', 'jquery', 'requirejs-tpl!./../../../../resources/templates/login/LoginTemplate.html', 'Login', './../AppView'], function (Backbone, _, $, LoginTemplate, Login, AppView) {

'use strict';

var LoginView = Backbone.View.extend({

initialize : function () {

},

render : function () {
this.$el.html(LoginTemplate());
return this;
},

events : {
'click #btnConnect' : 'connect'
},

connect : function (event) {

event.preventDefault();

var login = $('#login').val();
var password = $('#password').val();
var ReponseLogin = Login.login(login, password);
if(!ReponseLogin.connected){
//Erreur
$('#showErreur').html(ReponseLogin.erreur);
}
else{
//Pas d'erreur, on affiche l'appli, AppView
var App = new AppView();
App.render();
}
}
});

return LoginView;

});

当我尝试声明要在 HomeView 上重新加载的新 AppView 时:“类型错误:AppView 不是构造函数”。

有人可以帮助我吗?

感谢

最佳答案

您正在使用循环依赖 - AppView 需要 LoginView,LoginView 需要 AppView。当在 LoginView 中引用时,这会导致 AppView 为空。这里有一个更好的解释:http://requirejs.org/docs/api.html#circular

您可能应该重构您的设计以消除此循环引用。如果您觉得有必要,可以在第二个模块 (LoginView) 中再次使用“require”并拉入 AppView(如该链接所示)。但我强烈建议您重新考虑设计。

关于javascript - Backbone 错误 View 不是构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28347334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com