2016-10-06 6 views
1

Angular2のHTMLヘッドからメタ値を取得するにはどうすればよいですか?Angular2のメタ値を取得する方法

たとえば、自分のプロジェクトのHMTLを持っていて、メタ名「userId」を取得したいと考えています。

<!doctype html> 
<html> 

<head> 
    <meta charset="utf-8"> 
    <title>SampleProject</title> 
    <base href="/"> 
    <meta name="userId" value="12345"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="icon" type="image/x-icon" href="favicon.ico"> 
</head> 

<body> 
    <app-root>Loading...</app-root> 
</body> 

</html> 

答えて

1
document.querySelector('meta["userId"]').getAttribute('value') 

Angular2から、このための特別なサポートはありません。

DOMへの直接アクセスを避けようとすると、Angular2を開始する前にこれを読み取ってDIを使用してAngularに渡すことができます。代わりに、あなたもOpaqueToken

+0

を使用することができます'userId'文字列の

var userId = document.querySelector('meta["userId"]').getAttribute('value'); // @Injectable(), @Component(), or @Directive() class ServiceOrComponent { constructor(@Inject('userId') private userId:string) {} } @NgModule({ providers: [{provide: 'userId', useValue: userId]} .... }) export class AppModule() 

あなた@GunterZochbauerをありがとうございます。 'document.querySelector ...'は 'document.querySelector( 'meta [name =" userId "]')。getAttribute( 'value')'でなければなりません。 'OpaqueToken'をチェックします。 – Kosmonaft

+0

AFAIK空白がなく、値が数字で始まらない場合(おそらく他の文字も)、内部引用符は必要ありません。とにかくフィードバックに感謝します。私は答えを更新しました。 –

関連する問題