JavaScript: Backbone.js получает json и загружает его в коллекцию моделей? - PullRequest
1 голос
/ 09 февраля 2012

Пока у меня есть следующий код, но он, похоже, не работает, и я не знаю, когда завершится асинхронная выборка:

var item = Backbone.Model.extend({
    defaults: {
        id: 0,
        an_id: 0,
        strval: null,
        th_id: 0,
        text: null
    },
    url: 'page.php',
    options: {
        success: function(data) {
            alert('s: ' + dump(data));
            // the dump function is my way of dumping objects into a string,
            // use console.log if you want, as I have that disabled
        },
        error: function(x, t, e) {
            alert('e: ' + t + ', ' + e);
        }
    }
});

var coll = Backbone.Collection.extend({
    model: item
});

var options = new Options();
Backbone.sync("create", coll, item.options); // 'undefined' is not an object (evaluating c.url) in backbone-min.js

Обновление

Я изменил исходный код до того, что у меня есть сейчас, и теперь бэкэнд может определить разницу между запросами «Новый», «Обновление», «Сохранить» и «Удалить».коллекция coll.

Ответы [ 2 ]

1 голос
/ 09 февраля 2012

Backbone.Collection предназначен для хранения нескольких предметов - кажется, вы пытаетесь заставить вашу коллекцию «наследовать» от вашей модели, что не является правильным подходом.моделей.Вы можете связать события «change», чтобы получать уведомления при изменении любой модели в коллекции, прослушивать события «add» и «remove», извлекать коллекцию с сервера и использовать полный набор методов Underscore.js.

0 голосов
/ 09 февраля 2012

вы можете добавить обработчик успеха к вашему вызову fetch. попробуйте это:

coll.fetch({
        success: function() {
            alert("success");
            console.log(coll.toJSON());
        },
        error: function(){
            alert("error")}
    });    
...