簡體   English   中英

Angular 2同時使用打字稿和JavaScript

[英]Angular 2 using both typescript and javascript

我有用JavaScript編寫的angular 2應用程序。 我想將其遷移到打字稿。

JS代碼是:

(function (app) {
    app.SomeService = ng.core
        .Class({
            constructor: [app.AnotherService, function SomeService(s) {
                this._anotherService = s;
            }],  
            someFunction: function(){
                ...
            }
            .....    
        });
})
(window.app || (window.app = {}));

我想將此服務注入到我的打字稿組件中。 我怎樣才能做到這一點?

我試圖這樣使用它:

@Component({...})
export class SomeComponent {
    constructor(public someService: window.app.SomeService) {
    }
}

但這行不通。

我設法混合JS和TS的方法是將文件與JS一起使用,就您而言,假設它是src / app.js,並帶有上面發布的代碼。

此時,您可以執行以下兩項操作之一:

  1. 您創建一個將使用所述JS代碼的組件,例如:

     import {Component} from "angular2/core"; @Component({ selector: 'app', template: ` <a> <onclick='app()'>When the function is clicked, use app() code</a> , directives: [] }) export class App { constructor(){ } } 

該模板將取決於您的代碼應該做什么。 我經常使用onClick,但是在這里您可以看到一個示例:

  template: `<input value="Select Date" type="text" class="datepicker" onclick ="myCalendar()" >

`

  1. 另一種選擇是從構造函數中調用JS代碼

     import {Component} from 'angular2/core'; @Component({ selector: 'app', template: ` <div> </div> `, directives: [] }) export class MyApp { name:string; constructor() { this.name='Angular 2'; app(); } } 

因此,據我所知,這取決於您想做什么以及何時進行。 有些人有更多的經驗,但是我盡量不要說錯什么,並提供與我現在正在工作的類似的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM