2017-12-24 3 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 또는 키에 액세스 할 수 있습니다 : 예를 들어

, 당신은 개체입니다 교대 인스턴스에 대한 참조 shiftobj 있습니다. 그런 다음 참조의 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'; 
}) 
:

직접 참조 시프트 개체와 개체를로드하는 또 다른 방법은 당신은 하나의 호출로의 참조가 객체를로드 깊은 로딩을 사용할 수 있습니다 deep loading입니다