2016-01-21 73 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是做教程: