加载Baqend参考文献

时间:2017-12-24 19:16:57

标签: baqend

有没有办法加载引用的对象而不得不去除类名?

例如,在我的应用程序中,我经常从引用的类加载数据。

所以我有一个数据对象,引用了这个:/ db / Shifts / 73c81cc9-fa14-4fbe-9839-10c4121b3fc6

return db.Shifts.load('73c81cc9-fa14-4fbe-9839-10c4121b3fc6')

是加载引用所需要的,所以我有很多这样的事情:

var cleanID = obj.ShiftID.replace('/db/Shifts/','');
return db.Shifts.load(cleanID)

有更好的方法吗?喜欢这个?

return db.load('/db/Shifts/73c81cc9-fa14-4fbe-9839-10c4121b3fc6')

1 个答案:

答案 0 :(得分:1)

是的,有很多方法可以解决您的问题。

您可以按ID(/db/Shifts/73c81cc9-fa14-4fbe-9839- 10c4121b3fc6)或按键(73c81cc9-fa14-4fbe-9839-10c4121b3fc6)加载对象。 由load方法支持。

// resolves both to the same object
db.Shifts.load('/db/Shifts/73c81cc9-fa14-4fbe-9839-10c4121b3fc6')
db.Shifts.load('73c81cc9-fa14-4fbe-9839-10c4121b3fc6')

您可以使用相应的访问者直接从任何对象引用访问id或密钥:

例如,您有一个对象obj,它对Shifts实例有一个引用shift。然后,您可以直接轻松访问引用的id或键。

obj.shift.id == '/db/Shifts/73c81cc9-fa14-4fbe-9839-10c4121b3fc6'
obj.shift.key == '73c81cc9-fa14-4fbe-9839-10c4121b3fc6'

如果要加载该引用,可以直接使用引用load方法:

obj.shift.load().then(shift => {
    shift.property = 'name';

    // Note that the obj.shift reference is resolved by the load call
    obj.shift === shift;

    return shift.save(); //do whatever you want to do with the reference
})

我们在object references的指南中对此进行了描述。

使用引用的shift对象直接加载对象的另一种方法是deep loading您可以使用深度加载通过一次调用加载带有引用的对象:

// The depth: 1 parameter ensures that all directly referenced objects of obj
// will be resolved by the load call
DB.MyClassWithShiftReference.load(id, {depth: 1}).then(obj => {
    obj.shift.property = 'name';
})