Ich möchte übergeben und holen Sie einen Wert aus der Ansicht, um die Verwendung einer Sammlung zu modellieren, ich bin in der Lage, den Wert in das Modell übergeben, wenn ich Sammlung verwendet wird, ist es nicht funktioniert. Ich weiß nicht, wo ist das Problem hier ist mein Code.Wie übergeben Wert von Sammlung zu Modell in backbone.js
mein Modell
var PostwallModel=Backbone.Model.extend({
urlRoot: 'http://localhost:3400/post',
idAttribute: '_id',
defaults : {
userId: '',
userName: " ",
postmsg : "unknown"
},
initialize: function() {
console.log("<><><>post model initialize<><><><><>");
},
// Delete item (row) from
clear: function() {
this.destroy();
}
});
meiner Sammlung
var PostwallCollection = Backbone.Collection.extend({
url: 'http://localhost:3400/post',
model: PostwallModel
});
**here is my view**
var PostwallView = Backbone.View.extend({
el: $("#page"),
template: _.template(PostwallTemplate),
events: {
'click #postinwall' : 'submitpost',
},
initialize: function() {
console.log("_______postmodel");
this.model = new PostwallModel();
var obj= new PostwallModel();
obj.set({userId:'123',userName:"str ji",postmsg:'the post is here'});
console.log(obj.get('postmsg'));
obj.toJSON();
console.log(JSON.stringify(obj));
// console.log(obj.get('userName'));
var collection = new PostwallCollection();
_.bindAll(this, 'submitpost');
console.log(collection);
collection.add(obj,{id:1});
console.log("collection"+collection);
console.log("collection fetch value "+JSON.stringify(collection.fetch()));
this.render();
},
render: function() {
alert(" render function");
},
submitpost: function(e) {
//Save post model to server data
e.preventDefault();
var post_data = JSON.stringify(this.getFormData(this.$el.find('form')));
//
//this.model.save(post_data);
this.model.set(post_data);
this.collection.add(this.model);
return false
},
//Auxiliar function
//how to get data from textarea
});
hier bin ich in Konsole bekommen ----> [], Sammlung holen Wert [object Object], Wo ist das Problem und wie wird der Wert gespeichert und abgerufen?
Wussten Sie, dass .fetch() asynchroner Betrieb ist? console.log ("Sammlungsabrufwert" + JSON.stringify (collection.fetch())); würde nicht funktionieren. Kannst du Jsbin Beispiel für mehr Hilfe geben? –
Ich habe Ihren Punkt nicht erhalten, bitte können Sie weitere Informationen geben @VasilVanchuk – Sport
Das ist, was ich spreche: collection.fetch() liefert keine Daten zurück, verursachen holen HTTP-Anfrage und Daten werden nur auf erfolgreiche Bearbeitungsantwort Also wenn Sie wie console.log schreiben ("collection fetch value" + JSON.stringify (collection.fetch())); Sie würden keine Sammlungsdaten sehen –