0

如何在 Backbone js 中创建注册表单?并将 POST 发送到我的后端,我不明白在这种情况下收集的想法。

到目前为止我得到了什么:

define(['jQuery', 'Underscore', 'Backbone', 'text!templates/signup.html', 'models/UserRegistration'],
function($, _, Backbone, signUpTemplate, UserRegistration){

    var SignUpView = Backbone.View.extend({
        el: $('#screen'),

        events: {
            'submit #frm-signup': 'signup'
        },

        signup: function(){
            // Do something
        },

        render: function(){
            $(this.el).html(_.template(signUpTemplate, {}));
            return this;
        }
    });

    return new SignUpView;
});

还有一个模型:

define(['Underscore', 'Backbone'],
function(_, Backbone){

    var UserRegistration = Backbone.Model.extend({
        url: '/users/reg',
        paramRoot: 'user',
        defaults: {
            'fullname': '',
            'email': '',
            'password': ''
        }
    });

    return UserRegistration;
});

将其发布到我的 REST 后端服务器的下一步是什么?

4

1 回答 1

1

Backbone.Modelsave当你调用它的函数时,它会向服务器发送一个 POST 。因此,假设您在调用注册时已经从表单中填充了模型,那么这只是调用保存的情况:

signup: function(){
            this.model.save();
        },

或者,您可以将要保存的详细信息传递到保存函数中:

signup: function(){
            this.model.save({
                      fullname: $( '#fullname' ).val(),
                      email : $( '#email' ).val()
                      ...
                      });
        },

可能值得注意的是,您还需要在某个时候在视图上创建模型(您的代码目前似乎没有这样做)。

因此,当您创建视图时:

new SignUpView({ model: new UserRegistration });
于 2012-05-24T15:03:24.580 回答