Backbone.js打印“;函数String(){〔本机代码〕}"而不是模型属性
Backbone.js prints "function String() { [native code] }" instead of model attribute
我是backbone.js的新手,这是我的问题。
第一个I设置路由:
var Router = Backbone.Router.extend({
initialize: function(){
var data = {
member: new Member.Model({ _id: 'some id' })
};
_.extend(this, data);
// Use main layout and set Views.
app.useLayout("main-layout").setViews({
".member": new Member.Views.Start(data)
}).render();
},
routes: {
"": "index"
},
index: function() {
this.member.fetch();
}
});
在索引路由中,当元素与成员类匹配时,只需获取开始视图并将其添加到DOM中。这很好用。然而,在模板中我有:
<%= model.get('username') %>
这会打印
function String() { [native code] }
而不是模型属性这是模型和视图类:
var Member = app.module();
Member.Model = Backbone.Model.extend({
urlRoot: '/Members',
idAttribute: "_id",
defaults: {
_id: null,
name: String,
email: String,
username: String,
initials: String,
provider: String,
provider_id: String,
confirmed: Boolean,
provider_avatar: String
},
initialize: function(models, options){
}
});
Member.Views.Start = Backbone.View.extend({
template: "member/start",
serialize: function() {
return { model: this.options.member };
},
initialize: function() {
}
});
对于我的项目,我使用骨干样板https://github.com/backbone-boilerplate/backbone-boilerplate模板工程:https://github.com/backbone-boilerplate/backbone-boilerplate/wiki/Working-with-templates
为什么我得到这个文本而不是模型值,以及如何解决这个问题?
username
属性的默认值为String
:
Member.Model = Backbone.Model.extend({
...
defaults: {
...
username: String,
...
并且CCD_ 3是一个函数:
> String
function String() { [native code] }
这就是您所看到的(记住,在Javascript中,您可以将函数分配给变量)。
如果您希望默认值是字符串类型的值,则需要更改代码,如下所示:
Member.Model = Backbone.Model.extend({
...
defaults: {
...
username: '',
...
在模型定义中,您将所有默认值定义为函数,修复它的一种方法是使用实际字符串作为默认值,
defaults: {
_id: null,
name: '',
email: '',
username: '',
initials: '',
provider: '',
provider_id: '',
confirmed: false,
provider_avatar: ''
},
如果你在浏览器控制台中键入String
,你会得到
function String() { [native code] }
这就是为什么你的输出是这样的。
相关文章:
- //而不是在src=“”上使用http://"属性
- Javascript复选框函数:;缺少:在属性id之后"
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- 如何提取“;href"最近列表项中的属性值
- 我如何选择/点击一个带有for=“”的元素"属性[量角器]
- Jquery scrollTop动画不工作"无法读取属性'top'无风
- "无法获取属性'的值;style'"当试图在IE中更改样式时
- 为什么我得到“;无法获取属性的值'SetReturnValue'"当使用ceebox显示YouT
- "属性描述必须是对象“”;错误
- 显示范围输入的值"无法读取属性'值'“为空”;
- "无法读取属性'id'未定义的“;解析工厂中声明的数组时
- javascript删除"被禁用”;属性
- 为什么下面抛出一个“;对象没有't支持属性或方法'importNode'"在IE11中
- JS/JQuery:动态添加"图案“;以及“;标题“;属性以形成输入
- 如何获得"src”;来自多个嵌套iframe源的属性
- "未捕获的类型错误:无法读取属性'长度'“为空”;在jQuery中
- 谷歌地图Api在CRM Dynamics 2011 iframe"不可能使用显示属性“;消息
- "Function.createDelegate"原因;错误:对象没有't支持属性或方法
- 奇怪的行为angularjs返回"类型错误:无法分配给只读属性"