aboutsummaryrefslogtreecommitdiff
path: root/src/controllers/DocumentReferenceController.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/controllers/DocumentReferenceController.ts')
-rw-r--r--src/controllers/DocumentReferenceController.ts14
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.");
}