p.location-badge. exported from angular2/annotations defined in angular2/src/core/annotations_impl/annotations.ts (line 900) :markdown Lifecycle events are guaranteed to be called in the following order: - `onChange` (optional if any bindings have changed), - `onInit` (optional after the first check only), - `onCheck`, - `onAllChangesDone` .l-main-section h2 Members .l-sub-section h3 onDestroy :markdown Notify a directive whenever a View that contains it is destroyed. ``` @Directive({ ..., lifecycle: [LifecycleEvent.onDestroy] }) class ClassSet { onDestroy() { // invoked to notify directive of the containing view destruction. } } ``` .l-sub-section h3 onChange :markdown Notify a directive when any of its bindings have changed. This method is called right after the directive's bindings have been checked, and before any of its children's bindings have been checked. It is invoked only if at least one of the directive's bindings has changed. : ``` @Directive({ selector: '[class-set]', properties: [ 'propA', 'propB' ], lifecycle: [LifecycleEvent.onChange] }) class ClassSet { propA; propB; onChange(changes:{[idx: string, PropertyUpdate]}) { // This will get called after any of the properties have been updated. if (changes['propA']) { // if propA was updated } if (changes['propA']) { // if propB was updated } } } ``` .l-sub-section h3 onCheck :markdown Notify a directive when it has been checked. This method is called right after the directive's bindings have been checked, and before any of its children's bindings have been checked. It is invoked every time even when none of the directive's bindings has changed. : ``` @Directive({ selector: '[class-set]', lifecycle: [LifecycleEvent.onCheck] }) class ClassSet { onCheck() { } } ``` .l-sub-section h3 onInit :markdown Notify a directive when it has been checked the first itme. This method is called right after the directive's bindings have been checked, and before any of its children's bindings have been checked. It is invoked only once. : ``` @Directive({ selector: '[class-set]', lifecycle: [LifecycleEvent.onInit] }) class ClassSet { onInit() { } } ``` .l-sub-section h3 onAllChangesDone :markdown Notify a directive when the bindings of all its children have been checked (whether they have changed or not). : ``` @Directive({ selector: '[class-set]', lifecycle: [LifecycleEvent.onAllChangesDone] }) class ClassSet { onAllChangesDone() { } } ```