2016-01-21 49 views
25

我是Angular 2的新手。從AngularJS到Angular 2的相應事件是什麼? 例如:ng-click(點擊)Angular 2 - 活動列表

ng-init和其他所有事件如何?我在VS .NET中沒有智能感知,所以很難猜測。

請任何幫助!

感謝

回答

41

默認處理的事件應該從原來的HTML DOM組件的事件映射。

onclick --->(click)

onkeypress --->(keypress)

等等

您還可以創建自定義事件。

但是ngInit不是一個HTML事件,它是Angular組件生命週期的一部分,而在Angular 2中,它們是使用「鉤子」處理的,它基本上是組件內部特定的方法名稱,具體週期。像:

ngOnInit

ngOnDestroy

等等

+3

<「默認處理的事件應該從原來的HTML DOM組件的事件映射」 - 你能請註明您的來源,或提供可用事件列表?我找不到任何官方的Angular 2事件列表。 – jdebon

+3

下面是[更完整](http://www.w3fools.com/)[DOM Events](https://developer.mozilla.org/en-US/docs/Web/Events)的列表。 – cvsguimaraes

+0

這是另一個地方chekc https://developer.mozilla.org/en-US/docs/Web/Events – Belter

1

您可以使用下面的語法來處理事件(例如clickng-click與Angular1):

<button (click)="callSomeMethodOfTheComponent()">Click</button> 

這裏的區別是,這是比較通用的。我的意思是你可以直接使用DOM事件,但也可以使用EventEmitter類定義的自定義事件。

這裏是介紹如何處理click事件和子組件觸發一個自定義事件(my-event)樣本:

@Component({ 
    selector: 'my-selector', 
    template: ` 
    <div> 
     <button (click)="callSomeMethodOfTheComponent()">Click</button> 
     <sub-component (my-event)="callSomeMethodOfTheComponent()"></sub-component> 
    </div> 
    `, 
    directives: [SubComponent] 
}) 
export class MyComponent { 
    callSomeMethodOfTheComponent() { 
    console.log('callSomeMethodOfTheComponent called'); 
    } 
} 

@Component({ 
    selector: 'sub-component', 
    template: ` 
    <div> 
     <button (click)="myEvent.emit()">Click (from sub component)</button> 
    </div> 
    ` 
}) 
export class SubComponent { 
    @Output() 
    myEvent: EventEmitter; 

    constructor() { 
    this.myEvent = new EventEmitter(); 
    } 
} 

希望它可以幫助你, 蒂埃裏

5

這是Angular2的一大優勢。不是每個事件都需要定製的ng-xxx指令。
使用自定義元素和所有其他庫生成各種自定義事件,此方法不會飛。

在Angular2中,(eventName)="expression"綁定語法允許訂閱任何已知和未知的事件。

$event變量仍然是可用(eventName)="myEventHandler($event)"

https://angular.io/docs/ts/latest/guide/template-syntax.html#!#event-binding

1

看到一個偉大的地方開始理解角2的官方網頁。

Here你可以看到所有的angular2 /常見 NG-XXX雖然現在它如下ngXxxx

enter image description here

在我的情況,瞭解角1和2之間的差異的最佳方式角2是做教程: