Angular会忽略其模板中的script
标签,但需要它们来加载GitHub gist。最佳做法是什么?使用iframe
吗?动态创建script
标签?还是其他?
答案 0 :(得分:0)
使用angular-gist或ngx-gist嵌入GitHub要点。
安装:
npm install angular-gist --save
用作模块:
angular.module('myApp', ['gist']);
用作指令:
<gist id="1234556"></gist>
安装:
npm i --save ngx-gist
用法:
import { NgxGistModule } from 'ngx-gist/dist/ngx-gist.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
NgxGistModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
答案 1 :(得分:0)
我使用angular-gist-embed多次使用Bower来实现这一目标。
只需按照以下方式安装:bower install angular-gist-embed
然后将其添加:angular.module('myModule',['gist-embed'])
我使用特定的GitHub Gist的ID进行嵌入:
<code data-gist-id="5457595"></code>
您可以找到更多示例here。
答案 2 :(得分:-1)
一种方法是创建一个iframe
并在其中script
的地方,并在您希望其要旨出现时附加它(基于jasonhodges解决方案)。
<iframe #iframe type="text/javascript"></iframe>
@ViewChild('iframe') iframe: ElementRef;
gistUrl: string;
ngAfterViewInit() {
const doc = this.iframe.nativeElement.contentDocument || this.iframe.nativeElement.contentElement.contentWindow;
const content = `
<html>
<head>
<base target="_parent">
</head>
<body>
<script type="text/javascript" src="${this.gistUrl}"></script>
</body>
</html>
`;
doc.open();
doc.write(content);
doc.close();
}