2016-01-26 29 views
0

我已經使用類型腳本完成了相當多的工作,並且我們總是使用模塊來創建名稱空間。我發現這不適用於角度。對於需要做什麼特別的任何幫助表示讚賞。如何用angular2定義模塊/命名空間?

通過下面的代碼,我希望能夠將引用中的代碼引用爲MyApplication.Contacts.ContactComponent。

module MyApplication.Contacts { 
    @Component({ 
     templateUrl: '/Home/Contact' 
    }) 

    export class ContactComponent { 

    } 
} 

回答

2

使用你不需要命名空間了ES6模塊 - 該angular2文檔對這種風格的倚重,所以我認爲這將是寫angular2應用的方法。缺點是你需要一個編譯步驟,但是當你使用ES7裝飾器時,這似乎是可以的。

// my-application/contacts.ts 
import { Component } from 'angular2/core'; 

@Component({ 
    templateUrl: '/Home/Contact' 
}) 
export class ContactComponent { 

} 

// later in my-application/app.ts 
import { bootstrap } from 'angular2/platform/browser'; 
import { ContactComponent } from './contacts'; 

// Do something with ContactComponent ... 

順便說一句:打字稿現在有namespace關鍵字替換module更好地能夠區分內部和外部模塊。

0

您示例中的模塊是內部TS模塊。您看到的大多數示例都使用外部TS模塊(請查看Handbook要說些什麼)。外部模塊也看起來像ES6 Modules,所以這是使用它們的另一個好處。

要組織外部模塊,您可以使用文件夾和正確配置的加載程序(如SystemJS)將知道在哪裏查找它們。如果你想保留你的結構,只需製作MyApplication/Contacts.ts文件,你可以像這樣導入它:

import {ContactComponent} from 'MyApplication/Contacts';