本文介绍了上的toJSON#Backbone.Collection哪里?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不知道为什么,但我不能得到这个工作。

I'm not sure why, but I can't get this to work.

var friends = new Backbone.Collection([
  {name: "Athos",      job: "Musketeer"},
  {name: "Porthos",    job: "Musketeer"},
  {name: "Aramis",     job: "Musketeer"},
  {name: "d'Artagnan", job: "Guard"},
]);

friends.where({job: "Musketeer"}).toJSON()

我收到未捕获类型错误:对象的翻译:没有法的toJSON

什么我是我做错了,我怎么转换我收集过滤成JSON?

What I'm I doing wrong and how do I convert my filtered collection into JSON?

推荐答案

什么 Underscore.where 方法返回的是一个阵列不是 Backbone.Collection 所以它有没有定义的的toJSON 方法。

What the Underscore.where method returns is an Array not a Backbone.Collection so it has not the toJSON method defined.

所以,你可以做两件事情:

So you can make two things:

var result = friends.where({job: "Musketeer"});
_.map( result, function( model ){ return model.toJSON(); } );

var Friends = Backbone.Collection.extend({
    search: function( opts ){
        var result = this.where( opts );
        var resultCollection = new Friends( result );

        return resultCollection;
    }
});

var myFriends = new Friends([
  {name: "Athos",      job: "Musketeer"},
  {name: "Porthos",    job: "Musketeer"},
  {name: "Aramis",     job: "Musketeer"},
  {name: "d'Artagnan", job: "Guard"},
]);

myFriends.search({ job: "Musketeer" }).toJSON();​

这篇关于上的toJSON#Backbone.Collection哪里?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-26 23:29