MCPcopy
hub / github.com/angular/angular / _getOrCreateElement

Method _getOrCreateElement

packages/platform-browser/src/browser/meta.ts:163–180  ·  view source on GitHub ↗
(
    meta: MetaDefinition,
    forceCreation: boolean = false,
  )

Source from the content-addressed store, hash-verified

161 }
162
163 private _getOrCreateElement(
164 meta: MetaDefinition,
165 forceCreation: boolean = false,
166 ): HTMLMetaElement {
167 if (!forceCreation) {
168 const selector: string = this._parseSelector(meta);
169 // It's allowed to have multiple elements with the same name so it's not enough to
170 // just check that element with the same name already present on the page. We also need to
171 // check if element has tag attributes
172 const elem = this.getTags(selector).filter((elem) => this._containsAttributes(meta, elem))[0];
173 if (elem !== undefined) return elem;
174 }
175 const element: HTMLMetaElement = this._dom.createElement('meta') as HTMLMetaElement;
176 this._setMetaElementAttributes(meta, element);
177 const head = this._doc.getElementsByTagName('head')[0];
178 head.appendChild(element);
179 return element;
180 }
181
182 private _setMetaElementAttributes(tag: MetaDefinition, el: HTMLMetaElement): HTMLMetaElement {
183 Object.keys(tag).forEach((prop: string) =>

Callers 3

addTagMethod · 0.95
addTagsMethod · 0.95
updateTagMethod · 0.95

Calls 7

_parseSelectorMethod · 0.95
getTagsMethod · 0.95
_containsAttributesMethod · 0.95
createElementMethod · 0.65
appendChildMethod · 0.65
filterMethod · 0.45

Tested by

no test coverage detected