Templates 模板呈现上的主干下划线错误:未捕获类型错误:对象#<;对象>;没有方法';获取';
在下面render方法的console.log行中,它显示了this.member实例正是它应该是的。所以成员对象是好的。我已经吐出了tpl的字符串,它应该是什么。那么,是什么导致了主题标题中的错误呢 其他信息:此视图是父视图渲染的子视图。我正在使用 非常感谢你的帮助。我在旋转我的轮子:-/ 这是我的密码 编辑:更改了成员对象属性引用,现在可以工作了…Templates 模板呈现上的主干下划线错误:未捕获类型错误:对象#<;对象>;没有方法';获取';,templates,backbone.js,underscore.js,Templates,Backbone.js,Underscore.js,在下面render方法的console.log行中,它显示了this.member实例正是它应该是的。所以成员对象是好的。我已经吐出了tpl的字符串,它应该是什么。那么,是什么导致了主题标题中的错误呢 其他信息:此视图是父视图渲染的子视图。我正在使用 非常感谢你的帮助。我在旋转我的轮子:-/ 这是我的密码 编辑:更改了成员对象属性引用,现在可以工作了… <div class="wrap-profile container"> <div class="profile-pi
<div class="wrap-profile container">
<div class="profile-pic">
<div class="pic">
<img src="<%= pathUploads %><%= member.photo_profile %>" width="400" height="600" id="<%= member.id %>" class="photo-img">
</div>
</div>
<div class="profile-info">
<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent consectetur urna nec erat pretium tempus.
</div>
<div>
Morbi nec arcu at leo lobortis egestas. Phasellus sagittis neque dolor, ut congue lorem egestas id.m laoreet, vitae tristique lorem sollicitudin.
</div>
<div>
In vel libero eget enim rhoncus suscipit. Nunc tristique in nisi eget bibendum. Mauris et pulvinar orci.
</div>
<div>
Quisque eget sem id dolor tempus dictum. Pellentesque luctus scelerisque lacinia.
</div>
<div>
Sed gravida rutrum bibendum. Aenean condimentum eu dui nec adipiscing. Duis sagittis pharetra enim.
</div>
</div>
</div>
// ProfileView.js
define( function(require) {
"use strict";
var $ = require('jquery'),
_ = require('underscore'),
Backbone = require('backbone'),
Helper = require('helper'),
tpl = require('text!templates/profilePicTemplate.html'),
template = _.template(tpl);
return Backbone.View.extend({
el: $("#profile"),
initialize: function(member) {
var self = this;
this.member = member;
},
render: function() {
var data = {
pathUploads: Helper.global.pathUploads,
member: this.member
};
console.log(this.member);
this.$el.html(template(data));
return this;
},
destroy: function() {
template = null
this.member = null;
}
});
});
模板…
<div class="wrap-profile container">
<div class="profile-pic">
<div class="pic">
<img src="<%= pathUploads %><%= member.photo_profile %>" width="400" height="600" id="<%= member.id %>" class="photo-img">
</div>
</div>
<div class="profile-info">
<div>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent consectetur urna nec erat pretium tempus.
</div>
<div>
Morbi nec arcu at leo lobortis egestas. Phasellus sagittis neque dolor, ut congue lorem egestas id.m laoreet, vitae tristique lorem sollicitudin.
</div>
<div>
In vel libero eget enim rhoncus suscipit. Nunc tristique in nisi eget bibendum. Mauris et pulvinar orci.
</div>
<div>
Quisque eget sem id dolor tempus dictum. Pellentesque luctus scelerisque lacinia.
</div>
<div>
Sed gravida rutrum bibendum. Aenean condimentum eu dui nec adipiscing. Duis sagittis pharetra enim.
</div>
</div>
</div>
// ProfileView.js
define( function(require) {
"use strict";
var $ = require('jquery'),
_ = require('underscore'),
Backbone = require('backbone'),
Helper = require('helper'),
tpl = require('text!templates/profilePicTemplate.html'),
template = _.template(tpl);
return Backbone.View.extend({
el: $("#profile"),
initialize: function(member) {
var self = this;
this.member = member;
},
render: function() {
var data = {
pathUploads: Helper.global.pathUploads,
member: this.member
};
console.log(this.member);
this.$el.html(template(data));
return this;
},
destroy: function() {
template = null
this.member = null;
}
});
});
证据直接指向
this.member
是一个普通的老javascript对象,而不是主干.Model
子类的实例。你似乎意识到了这一点,所以我认为这是一个“不,真的,现在听我们说,以后相信我们”的例子。要测试这个理论,请在这个片段中交换
var data = {
pathUploads: Helper.global.pathUploads,
member: new Backbone.Model(this.member)
};
如果这能解决问题,那么这个理论就成立了
(旁白……)
<> P>因为它的价值,使你的模板需要一个主干模型实例而不是普通数据可能是劣质的,所以考虑只是让你的模板做<代码> <代码>,这样它就不关心数据来自哪里。这也使得使用presenter设计模式更加容易。您可以在视图中使用
member.toJSON()
获取要传递到模板的普通数据属性。证据非常直接地指向这个.member
是一个普通的旧javascript对象,而不是主干.Model
子类的实例。你似乎意识到了这一点,所以我认为这是一个“不,真的,现在听我们说,以后相信我们”的例子。要测试这个理论,请在这个片段中交换
var data = {
pathUploads: Helper.global.pathUploads,
member: new Backbone.Model(this.member)
};
如果这能解决问题,那么这个理论就成立了
(旁白……)
<> P>因为它的价值,使你的模板需要一个主干模型实例而不是普通数据可能是劣质的,所以考虑只是让你的模板做<代码> <代码>,这样它就不关心数据来自哪里。这也使得使用presenter设计模式更加容易。您可以在视图中使用
member.toJSON()
获取要传递到模板的普通数据属性。执行console.log(this.member)
在render
中说出正确的话?@muistooshort:是的,这个.member有一个完整的member对象,其中包含photo\u profile
和id
属性。你确定它是主干。模型吗?
在您的模板中说了什么?您的控制台.log(this.member)是否存在
在render
中说出正确的话?@muistooshort:是的,这个.member有一个完整的member对象,其中包含photo\u profile
和id
属性。你确定它是主干。模型吗?
在你的模板中说了什么?好吧,时间晚了一点,我绝对相信你;-)该会员过去/现在不是BB车型。我将在OP中编辑代码,以显示什么是有效的。谢谢,谢谢你们!嗯,时间晚了一点,我绝对相信你;-)该会员过去/现在不是BB车型。我将在OP中编辑代码,以显示什么是有效的。谢谢,谢谢你们!