Backbone句柄字符串数组

时间:2012-03-06 17:06:52

标签: javascript json backbone.js

使用Backbone.js我需要处理从JSON Web服务返回的字符串数组。我应该创建一个Backbone Collection来获取这个列表吗?以下是我从Web服务获得的数据:

["Question Designer","Adaptive Question Designer","Clickable image map","Essay","Fill in the blanks","Maple-graded","Matching","Mathematical formula","Multipart question","Multiple choice","Multiple selection","Numeric","Palette-based symbolic editor","True/false","Other"]

我创建了这个简单的Collection来获取数据:

var questionTypesCollection = Backbone.Collection.extend({
  url: function() {
    return apiBase + '/questions/types';
  }
});

但是当我尝试获取()集合时,我收到了这个错误:

Uncaught TypeError: Cannot use 'in' operator to search for 'id' in Question Designer

看起来Backbone正在尝试将字符串解析为模型,而不是看到它只是一个原始字符串。如何将数据导入Collection中,以便在View中使用它?

2 个答案:

答案 0 :(得分:3)

如果你只需要字符串,最好的办法就是让jQuery(或Zepto - 无论$处理什么)处理繁重的工作:

var names = [];

$.get(apiBase + '/questions/types', {}, function(result){
  names = result;
})

获取完成后,names变量将填充查询结果。

答案 1 :(得分:2)

这没有多大意义,因为骨干集合被设计成一组模型。 但是,您可以使用自己的解析器覆盖parse方法。