我有一个rails开发人员在主干上尝试使用Backbone.js应用程序书 - 我的第一个Backbone / Node / Mongo应用程序,所以要温和。
我已经倾倒了类似的问题并且已经被困了12个小时了所以我认为是时候放弃了。错误高于和低于
[TypeError: Cannot use 'in' operator to search for '_id' in YES PLEASE]
我正在尝试将图书保存到图书馆,这是我的架构。
var Keywords = new mongoose.Schema({
keyword: String
});
var Book = new mongoose.Schema({
title: String,
author: String,
releaseDate: Date,
keywords: [ Keywords ]
});
当我做一个简单的Ajax帖子时,关键字会显示并保存,但是当我尝试从视图中添加它们时,它们会失败。这是library.js视图。
var app = app || {};
app.LibraryView = Backbone.View.extend({
el: "#books",
events: {
'click #add': "addBook"
},
initialize: function() {
this.collection = new app.Library();
this.collection.fetch({reset: true});
this.render();
this.listenTo(this.collection, 'add', this.renderBook );
this.listenTo(this.collection, 'reset', this.render)
},
render: function() {
this.collection.each(function(item) {
this.renderBook(item);
}, this);
},
renderBook: function(item) {
var bookView = new app.BookView({
model: item
});
this.$el.append(bookView.render().el );
},
addBook: function(e) {
e.preventDefault();
var formData = {};
$('#addBook div').children('input').each(function( i,el ) {
if( $( el ).val() != '' )
{
if( el.id ==="kewords" ) {
_.each( $(el).val().split(' '), function( keyword ){
formData[ el.id ].push({ 'keyword': keyword });
});
} else if ( el.id ==='releaseDate' ){
formData[ el.id ] = $("#releaseDate").datepicker('getDate').getTime();
} else {
formData[ el.id ] = $( el ).val();
}
}
$( el ).val('')
});
this.collection.create( formData );
}
});
任何帮助都是最受欢迎的。另外,调试javascript的最佳做法是什么?进入控制台并钻进?是否有更好的调试器库可用于节点?
由于
答案 0 :(得分:0)
我猜你的帖子数据JSON对象属性是错误的。我纠正后面临同样的问题,问题就消失了。
问题状态:
{"userId": "58821f9b1b059b515a53d44b","dashboard":"mobile_dashboard"}
更正后:
{"userId": "58821f9b1b059b515a53d44b","dashboard":{"title":"mobile_dashboard","viewData":{"className":"BuilderDroppableZone"}}}