0

我正在使用集合 url 进行服务调用。服务返回一些json,json长度为13(总之13行数据)。

在这里,this.Collection.fetch() 返回长度为 13 的 json。但 this.Collection.toJSON() 返回长度为 12 的 json。相反,它应该返回长度 13。

在集合解析中,响应返回的是长度为 13 的 json,这是正确的!

tableTemplate 是模板的对象(模板是使用 Handlebars.js 完成的)。

this.Collection.fetch({ 成功:函数(){

        console.log("Collection Fetch 2:");
        console.log(this.Collection.fetch());

        console.log("Collection toJSON: ");
        console.log(this.Collection.toJSON());
        console.log(this.Collection.toJSON().length);


        var markup = tableTemplate({List:self.importCollection.toJSON()});
         ...
          ...
    }
});
4

1 回答 1

1

这就是 javascript/backbone 的异步特性

像这样做 :

this.collection.fetch();

//Fetch() is asynchronous call , when it completes fetching it triggers the **reset**   event so you need a event listener for **reset**

this.collection.on('reset',function(data){
console.log(data);                          // this will log the object
});

this.collection.on('reset',function(data){
console.log(JSON.stringify(data));        // This will log the JSON data  
});

或者你可以这样做:

this.collection.fetch({
success : function(){                      // called on completion of fetch()
console.log(data);       
console.log(JSON.stringify(data));  
}
});
于 2013-02-13T18:02:26.487 回答