양식을 제출하려고 할 때 backbone.js를 사용하고 있습니다. 이 경우에는 this
을 사용할 수 없습니다. 그래서 json에 양식 내용을 직렬화하기 위해 인수를 사용하기를 희망합니다.Backbone.js 이벤트는 .create에서 양식을 serialize합니다.
어떻게하면됩니까?
window.UserView = Backbone.View.extend({
el: 'body',
model: new window.UserList,
template: _.template($('#user-view-template').html()),
events: { "submit form#newUser": "addItem" },
initialize: function() {
_.bindAll(this, 'render', 'update', 'addItem');
this.model.bind('refresh', this.render);
this.update();
},
render: function() {
$("#listContainer").html(this.template({ users: this.model.toJSON() }));
return this;
},
update: function() {
this.model.fetch();
},
addItem: function (e) {
e.preventDefault();
var person_attrs = $(e.target).serializeObject();
this.model.create(person_attrs, {
success: function (saved_person, data) {
if (data.Result == "Success") {
alert("success, new Id: " + data.Model.Id);
}
else {
//Need to remove the model from the collection
alert(data.Message);
}
},
error: function (aborted_person, response) {
alert("Server Error");
}
});
return false;
}
});
지금까지 직렬화하여 서버에 전송하는 형식이 있습니다. 이것이 올바른 방법일까요?
는 또한 몇 가지 다른 문제가 :- 제거하거나 서버에서 오류를 반환하는 경우 로컬 모델을 만들 취소 할 수 있습니다.
- 서버 결과가 "성공"이면 반환 된 ID를 모델에 할당하고 싶습니다.
- 보기를 새로 고칩니다. 나는 서버가 돌아온 후에
refresh
이벤트가 호출 될 것이라고 생각했다.
DOM 조작을 위해 Zepto 또는 jQuery를 사용하고 있습니까 (참고 -해야합니까)? – Shakakai
Shakaai - Jquery –
지나치게 복잡한 질문은 답변을 방해하는 경향이 있습니다. 짧고 집중적 인 것이 훨씬 낫다. id 속성을 처리 할 모델에 대한 구문 분석 메소드에 대해 읽어야합니다. 뷰 메서드를 모델의 change 이벤트에 바인드하지 않으면 뷰가 새로 고쳐지지 않습니다. 문서에서 이벤트 바인딩에 대해 읽어야합니다. –