我正在尝试为parentView调试此代码。从此代码抛出的错误是“Uncaught TypeError:无法读取未定义的属性'属性'”。 console.log也以未定义的形式返回,但是如果我在后面的render函数中调试了相同的this.model.total_fans,则它具有一个值。我不太了解骨干网来调试这个烦人且可能微不足道的错误,但我觉得这样设置的方式是错误的,特别是在阅读有关在这里处理渲染子视图的帖子How to handle initializing and rendering subviews in Backbone.js?之后。我想知道这里有什么问题。我应该在父母初始化中实例化子视图吗?并且父母应该在模型更改上调用render和pagesetup吗?
initialize:function () {
var self = this;
// General model for this page
this.model = new geodemoModel();
// separate summary model
this.summaryModel = new summaryModel();
this.model.fetch();
this.summaryModel.fetch();
this.model.bind('change', this.render, this);
this.model.bind('change', this.pageSetup, this);
this.summaryModel.bind('change', this.render, this);
this.summaryModel.bind('change', this.pageSetup, this);
},
pageSetup:function () {
if (this.oneSelect == 'All' || this.oneSelect == 'lifetime_fans') {
console.log(this.model.total_fans);
var viewLifetime = new lifetimeView(this.model.total_fans.attributes.total_fans_object);
$('#lifetimeFans').html(viewLifetime.render().el);
}
答案 0 :(得分:1)
假设您的模型存在,您应该使用:
this.model.get('total_fans').attributes.total_fans_object
如果不起作用,请在console.log(this.model)
内粘贴pageSetup
。