骨干需要js注册

时间:2012-05-24 14:36:13

标签: javascript backbone.js requirejs

如何在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后端服务器的下一步是什么?

1 个答案:

答案 0 :(得分:1)

当您调用Backbone.Model函数时,

save会向服务器发送一个POST。因此,假设您在呼叫注册时已经从表单填充了模型,那么只需要调用save:

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

或者,您可以传递详细信息以保存到保存功能中:

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

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

因此,在创建视图时:

new SignUpView({ model: new UserRegistration });