Я новичок в Backbone и пытаюсь настроить его в Sinatra, но, похоже, мне не удается заставить работать простое создание.
Я настроил свою модель / коллекцию так:
var TEAM_ID = window.location.pathname.split('/')[1]; // From url
$(function () {
var TeamMember = Backbone.Model.extend({
defaults: {
name : ""
}
});
var TeamMembers = Backbone.Collection.extend({
model: TeamMember,
url: "/" + TEAM_ID + "/team-members.json"
});
var teamMembers = new TeamMembers;
var TeamMemberView = Backbone.View.extend({
events: {
"click #new-team-member-form .submit-button" : "handleNewTeamMember"
},
handleNewTeamMember: function(data) {
var inputField = $('input[name=new_team_member_name]');
console.log("Pre create");
// This doesn't get sent to the server!!
var teamMember = teamMembers.create({name: inputField.val());
console.log("Post create");
return false; // Don't submit form
},
render: function() {
console.log("Render team member");
return this;
}
});
// ...
var teamMemberView = new TeamMemberView({el: $('#week-view')});
});
HTML-код выглядит так:
, а рубин выглядит так:
post '/:team_id/team-members.json' do
logger.info("Add team member (json): #{params}")
end
Однако сервер sinatra показывает только params [: team_id]
, без параметра name
в строке teamMembers.create
. Я что-то глупо делаю в позвоночнике? Что-то не инициализируется правильно?
Я просмотрел http://documentcloud.github.com/backbone/#Collection-create ,
http://documentcloud.github.com/backbone/docs/todos.html , http://liquidmedia.ca/blog/2011/01/backbone-js-part-1/ , http://liquidmedia.ca/blog/2011/01/an-intro-to-backbone-js-part-2-controllers-and-views/ и https: / /gist.github.com/1655019, но я не могу найти там ответов. Я чувствую, что наделал глупостей, но просто не вижу этого!
13
задан zlog 3 February 2012 в 18:41
поделиться
0 ответов
Другие вопросы по тегам: Похожие вопросы: