繁体   English   中英

单个HTML文件中的Angular4

[英]Angular4 in single html file

我以这个为例: JSFiddle-angular2示例我的目标是在单个html文件中使用angular4并创建一个没有webpack和管道的单页应用程序。

这是我的代码,目前无法正常工作。

<!DOCTYPE html>
<html>
   <head>
      <script type="text/javascript" src="https://unpkg.com/core-js@2.4.1/client/shim.min.js"></script>
      <script type="text/javascript" src="https://unpkg.com/zone.js@0.8.5/dist/zone.min.js"></script>
      <script type="text/javascript" src="https://unpkg.com/rxjs@5.2.0/bundles/Rx.min.js"></script>
      <script type="text/javascript" src="https://unpkg.com/@angular/core@4.0.1/bundles/core.umd.js"></script>
      <script type="text/javascript" src="https://unpkg.com/@angular/common@4.0.1/bundles/common.umd.js"></script>
      <script type="text/javascript" src="https://unpkg.com/@angular/compiler@4.0.1/bundles/compiler.umd.js"></script>
      <script type="text/javascript" src="https://unpkg.com/@angular/platform-browser@4.0.1/bundles/platform-browser.umd.js"></script>
      <script type="text/javascript" src="https://unpkg.com/@angular/platform-browser-dynamic@4.0.1/bundles/platform-browser-dynamic.umd.js"></script>
      <script type="text/typescript">
         let { Component, NgModule } = ng.core;
         @Component({
            selector: 'my-app',
            template: `
            <h1>Hello, {{ name }}</h1>
            <button (click)="increment()">Click {{ counter }}</button>
            `,
         })
         class HomeComponent {
         counter = 0;
         name = 'Angular 2'

         increment() {
         this.counter++;
         }
         }

         const { BrowserModule } = ng.platformBrowser;

         @NgModule({
         imports:      [ BrowserModule ],
         declarations: [ HomeComponent ],
         bootstrap:    [ HomeComponent ]
         })
         class AppModule { }

         const { platformBrowserDynamic } = ng.platformBrowserDynamic;
         platformBrowserDynamic().bootstrapModule(AppModule);
      </script>
   </head>
   <body>
      <my-app></my-app>
   </body>
</html>

就像@nikksan所说的,他只需要添加转译器,可以通过在文件末尾添加以下脚本完成。

<script src="https://cdnjs.cloudflare.com/ajax/libs/typescript/3.3.4000/typescript.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/basarat/typescript-script@master/transpiler.js"></script>

更新到Angular 7,它看起来像这样:

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="https://unpkg.com/core-js@2.6.5/client/shim.min.js"></script>
    <script type="text/javascript" src="https://unpkg.com/zone.js@0.8.29/dist/zone.min.js"></script>
    <script type="text/javascript" src="https://unpkg.com/rxjs@6.4.0/bundles/rxjs.umd.min.js"></script>
    <script type="text/javascript" src="https://unpkg.com/@angular/core@7.2.10/bundles/core.umd.js"></script>
    <script type="text/javascript" src="https://unpkg.com/@angular/common@7.2.10/bundles/common.umd.js"></script>
    <script type="text/javascript" src="https://unpkg.com/@angular/compiler@7.2.10/bundles/compiler.umd.js"></script>
    <script type="text/javascript" src="https://unpkg.com/@angular/platform-browser@7.2.10/bundles/platform-browser.umd.js"></script>
    <script type="text/javascript" src="https://unpkg.com/@angular/platform-browser-dynamic@7.2.10/bundles/platform-browser-dynamic.umd.js"></script>
</head>
<body>
<my-app></my-app>
<script type="text/typescript">
let { Component, NgModule } = ng.core;
@Component({
selector: 'my-app',
template: `
    <h1>Hello, {{ name }}</h1>
    <button (click)="increment()">Click {{ counter }}</button>
`,
})
class HomeComponent {
    counter = 0;
    name = 'Angular 2'

    increment() {
        this.counter++;
    }
}

const { BrowserModule } = ng.platformBrowser;

@NgModule({
    imports:      [ BrowserModule ],
    declarations: [ HomeComponent ],
    bootstrap:    [ HomeComponent ]
})
class AppModule { }

const { platformBrowserDynamic } = ng.platformBrowserDynamic;
platformBrowserDynamic().bootstrapModule(AppModule);
</script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/typescript/3.3.4000/typescript.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/basarat/typescript-script@master/transpiler.js"></script>
</body>
</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM