2016-03-22 9 views
0

My Angular 2 app etwa wie folgt strukturiert:Modify DOM Elemente außerhalb Wurzelkomponente

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <base href="/" /> 

    <script src="jspm_packages/system.js"></script> 
    <script src="config.js"></script> 

    <script> 
     System.import('client/main.js'); 
    </script> 
</head> 
<body> 
    <my-app></my-app> 
</body> 
</html> 

Die Stammkomponente ist die Komponente my-app.

Ich möchte das Element html ändern, das sich außerhalb der Stammkomponentenvorlage befindet, um einige Attribute hinzuzufügen. Ist das möglich?

In meinem Fall versuche ich dir und lang Attribute basierend auf den aktuellen Benutzereinstellungen, die zur Laufzeit abgerufen werden.

Antwort

1

Sie können entweder normale JS DOM access verwenden oder den DOM-Adapter verwenden, wie in den Title service (source) gezeigt

https://github.com/angular/angular/blob/master/CHANGELOG.md#400-beta0-2016-12-15 führen auch einen Meta Dienst zu erstellen und <meta>-Tags zu ändern.

+0

Das 'Title' Service Beispiel sieht vielversprechend aus. Werde es ausprobieren! –

+0

Sie sollten sich bewusst sein, https://github.com/angular/angular/issues/6904 –

+1

Ja, hatte ein ähnliches Problem in der GitHub Problem oben beschrieben. Etwas funktioniert mit 'BrowserDomAdapter' aus 'angular2/platform/browser'. Dieser Artikel hat einige nützliche Beispiele: http://www.bennadel.com/blog/3052-injecting-html-with-browser-domadapter-in-angularjs-2-beta-9.htm' –