使用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中使用它?
答案 0 :(得分:3)
如果你只需要字符串,最好的办法就是让jQuery(或Zepto - 无论$
处理什么)处理繁重的工作:
var names = [];
$.get(apiBase + '/questions/types', {}, function(result){
names = result;
})
获取完成后,names
变量将填充查询结果。
答案 1 :(得分:2)
这没有多大意义,因为骨干集合被设计成一组模型。
但是,您可以使用自己的解析器覆盖parse
方法。