Backbone.js 使用下划线.js获取以特定文本开头的主干模型的属性
我有一个主干模型,其中有一些属性,比如Backbone.js 使用下划线.js获取以特定文本开头的主干模型的属性,backbone.js,underscore.js,Backbone.js,Underscore.js,我有一个主干模型,其中有一些属性,比如 test_id test_name test_desc test_score 现在我想检索以开始的属性“test” 我尝试了下面的代码,效果很好 var MyModel = Backbone.Model.extend({ getTestProperties: function(str){ // get clone of attributes to iterate over var testProperties = {}
test_id
test_name
test_desc
test_score
现在我想检索以开始的属性“test”
我尝试了下面的代码,效果很好
var MyModel = Backbone.Model.extend({
getTestProperties: function(str){
// get clone of attributes to iterate over
var testProperties = {};
var attrs = _.clone(this.attributes);
_.each(attrs, function(val, key){
if(key.indexOf(str) == 0){
testProperties[key]= val;
}
}, this);
}
});
但是
是否有其他方法可以使用下划线方法获取这些属性
谢谢试试类似的东西
var attrs = _.filter(_.keys(_.clone(this.attributes)), function(attr){
return attr.indexOf("text_") === 0;
});
可以帮助您创建更可读的主干代理:和
然后,您可以简化您的函数,如下所示:
var MyModel = Backbone.Model.extend({
getTestProperties: function (str) {
// get the keys you want
var keys = _.filter(this.keys(), function (key) {
return key.indexOf(str) === 0;
});
// and build an object
return this.pick(keys);
}
});
还有一个演示