diff options
Diffstat (limited to 'src/controllers/DocumentReferenceController.ts')
-rw-r--r-- | src/controllers/DocumentReferenceController.ts | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/controllers/DocumentReferenceController.ts b/src/controllers/DocumentReferenceController.ts index 9d5bb7af2..9cf128614 100644 --- a/src/controllers/DocumentReferenceController.ts +++ b/src/controllers/DocumentReferenceController.ts @@ -1,4 +1,4 @@ -import { FieldController } from "./FieldController"; +import { FieldController, Opt } from "./FieldController"; import { DocumentController } from "./DocumentController"; import { KeyController } from "./KeyController"; import { DocumentUpdatedArgs } from "./FieldUpdatedArgs"; @@ -22,6 +22,18 @@ export class DocumentReferenceController extends FieldController { this.FieldUpdated.emit(args.fieldArgs); } + protected DereferenceImpl() : Opt<FieldController> { + return this.document.GetField(this.key); + } + + protected DereferenceToRootImpl(): Opt<FieldController> { + let field: Opt<FieldController> = this; + while (field instanceof DocumentReferenceController) { + field = field.Dereference(); + } + return field; + } + TrySetValue(value: any): boolean { throw new Error("Method not implemented."); } |