Как отправить POST из формы, используя Backbone?

Здравствуйте!
Имеется проблема следующего содержания -
Имеется backend-сервер, написаный на фреймоворке Flask.
Имеется html-форма, откуда нужно отпроавить данные на сервер (создание нового пользователя).

Запрос нужно отправить, используя Backbone.
Метод save не помогает не особо. Хотелось бы знать, в чем проблема.
Возможно, я неправильно написал модели?

Моделька.
define(["underscore", "backbone", "jquery"],

    function(_, Backbone, $) {
        return Backbone.Model.extend({

            urlRoot: "/adduser",

            defaults: {
                "email": "",
                "f_name": "",
                "id_role": 0,
                "l_name": "",
                "login": "",
                "password": "",
                "status": 1
            }
        });
    });

View:
define([
        "underscore",
        "backbone",
        "jquery",
        "text!pages/RestaurantPage/templates/AdminTemplate.html",
        "pages/RestaurantPage/models/User"

    ],

    function(_, Backbone, $, AdminTemplate, User) {
        return Backbone.View.extend({
            events: {
                events: {
                    'submit #new_user': 'save'
                }
            },
            initialize: function() {
                this.collection = new User();
                this.collection.on("change", this.collection.save());
            },
            el: $('#content'),
            save: function(e) {
                alert('ok"');
                var userInfo = {
                    email: this.$('#email').val(),
                    l_name: this.$('#l_name').val(),
                    f_name: this.$('#f_name').val(),
                    login: this.$('#login').val(),
                    password: this.$('#password').val(),
                    id_role: this.$('#id_role').val(),
                    status: this.$('#status').val()
                };
                this.collection.save(userInfo);

            },
            render: function() {
                this.$el.html(AdminTemplate);
            }
        });
    });


ID формы - new_user...
Буду благодарен за помощь!
  • Вопрос задан
  • 3129 просмотров
Пригласить эксперта
Ответы на вопрос 2
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Метод save не помогает не особо. Хотелось бы знать в чем проблема.

Нам тоже хотелось бы знать, в чем проблема:) Что именно не получается-то?

Строчка
this.collection.on("change", this.collection.save());
явно лишняя.
Зачем вы кладете модель в this.collection? у меня чуть мозг не взорвался.
Ответ написан
@personaljs
Попробуй так:
define([
        "underscore",
        "backbone",
        "jquery",
        "text!pages/RestaurantPage/templates/AdminTemplate.html",
        "pages/RestaurantPage/models/User"

    ],

    function(_, Backbone, $, AdminTemplate, User) {
        return Backbone.View.extend({
            el: $('#content'),
            events: {
                 'submit #new_user': 'save'
            },
            initialize: function() {
                this.model = new User();
            },
            render: function() {
                this.$el.html(AdminTemplate);
            }
            save: function(e) {
                alert('ok"');
                var userInfo = {};
		_.each($('#new_user')[0], function(el) {
				userInfo[el.id] = el.value;
			});
                this.model.save(userInfo,{
                   success: function(res){console.log('succes'),
                   error: function(res){console.dir(res)}
               }});
            },
        });
    });


define(["underscore", "backbone"],
    function(_, Backbone) {
        return Backbone.Model.extend({

            url: function () {
               return "/adduser";
            },
            defaults: {
                "email": "",
                "f_name": "",
                "id_role": 0,
                "l_name": "",
                "login": "",
                "password": "",
                "status": 1
            }
        });
    });
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы