Метод создания Backbone.js не отправляет параметры в sinatra

Я новичок в 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-код выглядит так:

New team member

, а рубин выглядит так:

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
поделиться