gpt4 book ai didi

javascript - Backbone.js,无法渲染 View

转载 作者:行者123 更新时间:2023-11-28 20:26:03 24 4
gpt4 key购买 nike

我尝试组织一些这样的 View :

define([
// Application.
"app"
],

function(app) {

var Partials = app.module();

Partials.classes = {
'AccountNavStart' : AccountNavStart = Backbone.View.extend({
template: 'member/account-nav',
serialize: function(){
return { model: this.model };
}
});

// Required, return the module for AMD compliance.
return Partials;
});

渲染:

new Popover.Views.Default({ 
content: new Partials.classes['AccountNavStart']().render().$el
});

但是我收到错误:

Uncaught TypeError: Cannot call method 'get' of undefined

enter image description here

有什么想法我会收到此错误吗?如何解决?

最佳答案

试试这个:

编辑:这是一个 Backbone Boilerplate 应用程序,所以我更新答案:

问题是如何在渲染后获取 View 的“Partials”模块的 $el 。我尝试定义一个模块并声明一个 Backbone View 作为其成员。然后我创建一个 View 实例,然后通过 view.render().$el 链接方法调用。它成功获取 View 的 $el ,因为在 Backbone Boilerplate 中 render() 有其默认行为。 native Backbone 渲染函数被设计为可被覆盖。

我的简单例子:

模块声明(模块/用户):

define(["app"],

function(app){
var User = app.module();

User.Views.Item = Backbone.View.extend({
template: "user/item",
tagName: "li",
serialize: function(){
return {model: this.model};
},
initialize: function(){
this.listenTo(this.model, "change", this.render);
}
});

return User;

});

项目模板 (templates/user/item.html)

<a href="#"><%=model.get("name")%></a>

尝试在 Router 初始化调用中获取 View 的 $el

define([
// Application.
"app","modules/user"
],

function(app, User) {

// Defining the application router, you can attach sub routers here.
var Router = Backbone.Router.extend({
initialize: function(){
app.useLayout("main-layout").setViews({
".users":new User.Views.Item({model:new Backbone.Model({"name":"cccc"})})
}).render();

//try to access $el. it works
console.log(new User.Views.Item({model:new Backbone.Model({"name":"cccc"})}).render().$el);
},
routes: {
"": "index",
"user/:name":"user"
},

index: function() {

},
user: function(){

}
});

return Router;

});

终于我得到了$el:

$el!

希望这对您有帮助。

关于javascript - Backbone.js,无法渲染 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17420655/

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