2016-02-03 31 views
1

我有一个Angular 2应用程序使用Flask(Python框架)来访问索引时向浏览器提供静态HTML的内容。我想要做的是在我的AboutComponent中显示我的应用程序的版本。我目前有Flask通过元标记(<meta name="version" content="{{ version }}">)将该版本呈现到我的HTML中。如何从我的静态HTML页面读取数据,例如元标记?

我最初的尝试是创建一个输入到我AppComponent(根组件)组件(我会再传递到我的AboutComponent,但我已经学会了,这样的事情是不可能的。

有了这样说,我怎么能访问HTML的meta标签的组件内

回答

1

@onetwothree - 如果你只是想访问它的内容会是这样的

export class MyComponent implements OnInit{ 
    private appVersion:string; 
    constructor(){ 
     this.appVersion = ""; 
    } 
    // Runs on component creation 
    ngOnInit(){ 
     this.appVersion = this.getMetaData(); 
    } 
    getMetaData():string{ 
     return document.getElementByName("version")[0].content; 
     //=== "what ever the version you passed in your FLASK template" 
    } 
} 
1

一个更加棱角状的办法是。使用th e DomAdapter

import 'package:angular2/platform/browser.dart' show BrowserDomAdapter; 

对不起,我不知道如何将此导入转换为TS。

MyComponent { 
    constructor(private dom: BrowserDomAdapter) { 
    dom.querySelector('meta[name="version"]').getAttribute('content'); 
    } 
} 
+0

尽管我同意这种解决方案更像Angualr,但它不起作用。它会抛出一个错误,指出'querySelector'不是'undefined'上的函数。查看'querySelector'的API需要一个元素,在我的情况下需要''document'。 – onetwothree

+0

该文档并没有多大意义。它看起来像你需要调用'BrowserDomAdapter.makeCurrent();'我猜'之前'bootstrap()'至少在你使用它之前。 –