2017-12-24 9 views
0

クラス名を削除して参照オブジェクトを読み込む方法はありますか?をロードする参考資料

たとえば、私のアプリケーションでは、参照されるクラスからデータを頻繁に読み込みます。

だから私はこれを参照して、データオブジェクトを持っている:/ DB /シフト/ 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

はい、問題を解決する方法はさまざまです。

オブジェクトをロードするには、id(/db/Shifts/73c81cc9-fa14-4fbe-9839- 10c4121b3fc6)またはキー(73c81cc9-fa14-4fbe-9839-10c4121b3fc6)を使用します。両方とも、ロード方法でサポートされている です。

// 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またはキーにアクセスすることができます。たとえば

を、あなたはシフトインスタンスへの参照をshift持つオブジェクトobjを持っています。次に、参照の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で私たちのガイドに記載されています。

// 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'; 
}) 

直接参照シフトオブジェクトを持つオブジェクトをロードする別の方法は、あなたが1回のコールでその参照を持つオブジェクトをロードするために、深いロードを使用することができますdeep loadingです

関連する問題