我正在使用主干来填充下拉列表。API 的更改导致数据(选项标签)返回不需要的数据,例如“Option Foo - 00011222”而不是“Option Foo”
我打算使用正则表达式,这样我只能显示“-”之前的第一个字符
在渲染到视图之前对集合上的数据进行清理的最佳方法是什么。
这应该在视图还是集合上完成
我正在使用主干来填充下拉列表。API 的更改导致数据(选项标签)返回不需要的数据,例如“Option Foo - 00011222”而不是“Option Foo”
我打算使用正则表达式,这样我只能显示“-”之前的第一个字符
在渲染到视图之前对集合上的数据进行清理的最佳方法是什么。
这应该在视图还是集合上完成
如果可以安全地丢弃附加数据,则可以使用Model.parse修改收到的数据:
parse model.parse(response, options)
每当服务器返回模型的数据时,在获取和保存时都会调用 parse。该函数传递原始响应对象,并应返回要在模型上设置的属性散列。
例如,如果要替换label
字段:
var data = [
{label: 'Option Foo - 00011222'},
{label: 'Option Foo2 - 00011222'}
];
var M = Backbone.Model.extend({
parse: function(data) {
data.label = data.label.replace(M.regexp, '');
return data;
}
}, {
regexp: /\s*-.*$/
});
var C = Backbone.Collection.extend({
model: M
});
var c = new C(data, {parse: true});
console.log(c.pluck('label'));