{"action":"opened","issue":{"url":"https://api.github.com/repos/angular/angular/issues/2404","labels_url":"https://api.github.com/repos/angular/angular/issues/2404/labels{/name}","comments_url":"https://api.github.com/repos/angular/angular/issues/2404/comments","events_url":"https://api.github.com/repos/angular/angular/issues/2404/events","html_url":"https://github.com/angular/angular/issues/2404","id":86071363,"number":2404,"title":"lifecycle method onChange called before onInit and onCheck","user":{"login":"ibhi","id":7778638,"avatar_url":"https://avatars.githubusercontent.com/u/7778638?v=3","gravatar_id":"","url":"https://api.github.com/users/ibhi","html_url":"https://github.com/ibhi","followers_url":"https://api.github.com/users/ibhi/followers","following_url":"https://api.github.com/users/ibhi/following{/other_user}","gists_url":"https://api.github.com/users/ibhi/gists{/gist_id}","starred_url":"https://api.github.com/users/ibhi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ibhi/subscriptions","organizations_url":"https://api.github.com/users/ibhi/orgs","repos_url":"https://api.github.com/users/ibhi/repos","events_url":"https://api.github.com/users/ibhi/events{/privacy}","received_events_url":"https://api.github.com/users/ibhi/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-06-08T07:58:45Z","updated_at":"2015-06-08T07:58:45Z","closed_at":null,"body":"I have attached `onInit, onCheck, onChange`, and `onAllChangesDone` lifecycle methods attached to a component(to reason about the sequence in which these methods get called). When the component is instantiated, its `onChange` method is called first, then `onInit`, `onCheck` and `onAllChangesDone` methods are called in sequence. \r\nThe docs says `onChange` \r\n> Notify a directive when any of its bindings have changed.\r\n> This method is called right after the directive's bindings have been checked, and before any of its children's bindings have been checked.\r\n> It is invoked only if at least one of the directive's bindings has changed.\r\n\r\n1. Why `onChange` is called initially when the component is instantiating?\r\n2. And whenever I change the value of a property on the component, `onChange` is fired first before `onCheck`. Is this intended behavior?\r\n\r\nHere is a simple plunker for the above question -> http://plnkr.co/edit/sk6Xi7L6a7ob9xiRJaSJ?p=preview. View the console for the sequence.\r\n"}}