我将角度模型对象发送到书架进行保存,但它可能带有数据库中没有的无关属性。当我保存时,书架会尝试保存所有属性并说它找不到这些额外的属性。
处理此问题的推荐方法是什么?我确信我可以设置一组列入白名单的属性,并手动剥离对象,但还有另一种方法吗? IE,是否有内置的方法来忽略未使用的属性?或者有没有办法查询数据库以获取列数组,然后使用它来剥离我的对象?
答案 0 :(得分:2)
除了Ghost团队允许的属性数组之外,您还可以使用parse()
。
Mode = bookshelf.Model.extend({
permittedAttributes: [ 'field1', 'field2', 'field3' ],
parse: function (attrs) {
return _.pick(attrs, this.permittedAttributes)
}
})
如果在基础模型中定义parse()
,则扩展它的所有模型的行为方式都相同
答案 1 :(得分:0)
在这里吹响我自己的号角,但是我遇到了很多问题,以至于我为书架创建了一个插件。不想每次都手动定义允许的属性。