从服务器获取模型

时间:2015-07-06 15:00:38

标签: backbone.js

我有一个使用Node.js编写的RESTful服务。如果我在浏览器中打开http://localhost:5000/links,我将获得链接集合:

[{"_id":"5597f5d3e9a768531c07468a","uri":"http://google.com","title":"google","__v":0,"tags":["one","two"]}]

我需要从骨干应用程序中获取此集合:

(function () {

    var Link = Backbone.Model.extend({});

    var LinkCollection = Backbone.Collection.extend({
        model: Link,
        url: 'http://localhost:5000/links'
    });

    var links = new LinkCollection();
    links.fetch();
    console.log(links);
    console.log(links.length);           

})();

这是一个控制台:

enter image description here

我可以看到我的对象在控制台的右侧(c3.attributes)。但为什么收集的长度为零?我怎样才能得到这个对象?

1 个答案:

答案 0 :(得分:2)

经典主干问题。

试试这个:

links.fetch({
    success:function(response) {
        //here are your results
    }
});

编辑:我认为一个集合会返回一个承诺,所以另一种解决方案可能是:

links.fetch().then(function(response) {
});

我自己没有使用它,但我认为它应该有用。希望它有所帮助。