Почему fetch () не работает?

Я пытаюсь получить коллекцию из URL JSON. Магистраль отправляет запрос и получает ответ, но нетmodels в коллекции после нее:

Вот мой JavaScript:

stores.fetch();

JSON в ответе

[{"name":"Store 1"},{"name":"Store 2"},{"name":"Store 3"},{"name":"Store 4"}]

HTTP-заголовок Content-Type в ответеapplication/json.

Почему он не загружается в коллекцию? Является ли JSON правильным?

Еще немного кода:

be.storeList.Item = Backbone.Model.extend({
    defaults: {
        id: null,
        name: null,
        description: null
    },
    initialize:function(attrs){
        attrs.id = this.cid;
        this.set(attrs);
    }
});

be.storeList.Items = Backbone.Collection.extend({
    model: be.storeList.Item,
    url:'/admin/stores'
});

var stores = new be.storeList.Items();
stores.fetch();
console.log(stores.toJSON());
 user1987816 мая 2012 г., 16:03
console.log (stores.models) == []
 nikoshr16 мая 2012 г., 16:23
fetchасинхронный Пытатьсяstores.fetch({ success:function() { console.log(stores.toJSON()); } });
 Vincent Briglia16 мая 2012 г., 15:43
поделитесь немного больше кода, пожалуйста, URL JSON в том же домене?
 bluedevil2k16 мая 2012 г., 15:51
Можем ли мы увидеть весь ваш код. не видя этого, это может быть много вещей - вы переопределяете метод разбора? откуда вы знаете, что данных нет в коллекции? Вы используете метод get (& quot; name & quot;), чтобы увидеть это, или по ошибке вызываете x.name?
 user1987816 мая 2012 г., 15:46
Да, магистраль отправляет запрос и получает ответ.

Ответы на вопрос(2)

Избавьтесь от функции инициализации в вашем классе Item. Вам это не нужно.

Там нет такого понятия, какstores.models - если вы хотите увидеть, что в нем есть, вы должны сделатьconsole.log(stores.toJSON());

 user1987816 мая 2012 г., 16:11
stores.toJSON () == []
 user1987816 мая 2012 г., 16:00
Все еще не работает.
 16 мая 2012 г., 16:02
Не существует такой вещи, как stores.models - если вы хотите увидеть, что в ней есть, вы должны сделать console.log (stores.toJSON ());
 user1987816 мая 2012 г., 16:06
В коллекции backbone.js есть и она есть в документации. Кроме того, это работает просто отлично: var stores = new be.storeList.Items ([{
Решение Вопроса

fetchасинхронный Пытаться

stores.fetch({ 
    success:function() {
        console.log(stores.toJSON());
    }
});

или же

stores.on("sync", function() {
    console.log(stores.toJSON());
});
stores.fetch();

или же

stores.fetch().then(function() {
    console.log(stores.toJSON());
});

Ваш ответ на вопрос