gpt4 book ai didi

javascript - 主干 View 不会显示

转载 作者:行者123 更新时间:2023-11-28 08:52:48 24 4
gpt4 key购买 nike

我在弄清楚为什么我的 Backbone View 没有显示在浏览器中时遇到了一些麻烦。我正在阅读一些 Backbone 教程,我只是想稍微更改一下代码以制作一个基本的 RPG 来练习,但我很困惑,因为它看起来应该可以工作。代码如下:

//MODEL
var Monster = Backbone.Model.extend({
defaults: {
name: '',
health: '',
defense: '',
attack: '',
damage: ''
}
});

var goblin = new Monster({name: 'Gobby', health: 10, defense: 10,
attack: 5, damage: 4});

//VIEW

var MonsterView = Backbone.View.extend({
tagName: 'div',
id: 'monster',
template: _.template('<table>' +
'<th><%= name %></th>' +
'<tr><td>Health</td> <td><%= health %></td>' +
'<td>Defense</td><td><%= defense %></td></tr>' +
'<tr><td>Attack</td><td><%= attack %></td>' +
'<td>Damage</td><td><%= damage %></td><tr>' +
'</table>'),
render: function(){
this.$el.html(this.template(this.model.toJSON()));
}
});

var monsterView = new MonsterView({model: goblin});
monsterView.render();

为此,我只有一个基本的 html 文档,其中包含一个 ID 为“monster”的空 div。这似乎是正确的,但 Chrome 控制台告诉我的是:

monsterView -> el: div#monster, model: child(具有所有正确的属性)

如果我在控制台中执行 monsterView.render() ,它会在控制台中打印 undefined 。但是,如果我在控制台中输入以下内容或将其包含在我的 app.js 文件中,则 View 看起来应该是这样的:

$('div').append(monsterView.template(monsterView.model.toJSON()));

感谢您的帮助。对于非菜鸟来说这可能是一件容易的事......

最佳答案

要使用带有 id monster 的现有 div:

var MonsterView = Backbone.View.extend({
el: '#monster',
template: _.template('<table>' +
'<th><%= name %></th>' +
'<tr><td>Health</td> <td><%= health %></td>' +
'<td>Defense</td><td><%= defense %></td></tr>' +
'<tr><td>Attack</td><td><%= attack %></td>' +
'<td>Damage</td><td><%= damage %></td><tr>' +
'</table>'),
render: function(){
this.$el.html(this.template(this.model.toJSON()));
}
});

关于javascript - 主干 View 不会显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18935812/

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