* This can be used to set contextual values. * Context must be set before any children are added, since children may consult context info during construction. * If the key already exists, it will be overridden. * @param key The context key * @param value The context value
(key: string, value: any)
| 235 | * @param value The context value |
| 236 | */ |
| 237 | public setContext(key: string, value: any) { |
| 238 | if (this.children.length > 0) { |
| 239 | const names = this.children.map(c => c.node.id); |
| 240 | throw new Error('Cannot set context after children have been added: ' + names.join(',')); |
| 241 | } |
| 242 | if (!this._context) { |
| 243 | this._context = {}; |
| 244 | } |
| 245 | this._context[key] = value; |
| 246 | } |
| 247 | |
| 248 | /** |
| 249 | * Retrieves a value from tree context if present. Otherwise, would throw an error. |
no outgoing calls