diff --git a/src/param/param-definition.ts b/src/param/param-definition.ts index 3db288f443e4e0561afae8d85761a6a1b7e99558..07786d7b61aac1d2d5c58f1f5801658977746d5c 100644 --- a/src/param/param-definition.ts +++ b/src/param/param-definition.ts @@ -64,6 +64,13 @@ export class ParamDefinition implements INubReference, INamedIterableValues, IOb this.checkValue(val); } + /** + * set parent a-posteriori; used by nghyd when populating forms + */ + set parent(parent: ParamsEquation | JalhydObject) { + this._parent = parent; + } + /** * identifiant unique de la forme * (uid du JalhydObject (en général un Nub) + "_" + symbole du paramètre) @@ -77,12 +84,9 @@ export class ParamDefinition implements INubReference, INamedIterableValues, IOb // uid du ComputeNode utilisant le ParamsEquation parentUid = String(this._parent.nubUid); } else { - // @TODO generate ? - // parentUid = "ORPHAN"; - console.log("DIE", this._parent, this); throw new Error("ParamDefinition.uid : parameter has no parent !"); } - return parentUid + "::" + this._symbol; + return parentUid + "_" + this._symbol; } get symbol(): string { diff --git a/src/value_ref/object_ref.ts b/src/value_ref/object_ref.ts index 678f48fb9d51eb311b2791cae4e9977bd0cef2d0..baba13fb94b3c03a90d5dfe3f6243898b5939658 100644 --- a/src/value_ref/object_ref.ts +++ b/src/value_ref/object_ref.ts @@ -154,7 +154,9 @@ export class NubReference implements INubReference { return undefined; } const rpv = this._referencedNub.getReferencedParamValues(this._refDefinition); - rpv._nubRef = this; + if (rpv) { + rpv._nubRef = this; + } return rpv; }