{"action":"created","issue":{"url":"https://api.github.com/repos/angular/angular/issues/3419","labels_url":"https://api.github.com/repos/angular/angular/issues/3419/labels{/name}","comments_url":"https://api.github.com/repos/angular/angular/issues/3419/comments","events_url":"https://api.github.com/repos/angular/angular/issues/3419/events","html_url":"https://github.com/angular/angular/pull/3419","id":98297472,"number":3419,"title":"feat(core): made directives shadow native element properties","user":{"login":"vsavkin","id":35996,"avatar_url":"https://avatars.githubusercontent.com/u/35996?v=3","gravatar_id":"","url":"https://api.github.com/users/vsavkin","html_url":"https://github.com/vsavkin","followers_url":"https://api.github.com/users/vsavkin/followers","following_url":"https://api.github.com/users/vsavkin/following{/other_user}","gists_url":"https://api.github.com/users/vsavkin/gists{/gist_id}","starred_url":"https://api.github.com/users/vsavkin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vsavkin/subscriptions","organizations_url":"https://api.github.com/users/vsavkin/orgs","repos_url":"https://api.github.com/users/vsavkin/repos","events_url":"https://api.github.com/users/vsavkin/events{/privacy}","received_events_url":"https://api.github.com/users/vsavkin/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/angular/angular/labels/cla:%20yes","name":"cla: yes","color":"009800"},{"url":"https://api.github.com/repos/angular/angular/labels/comp:%20core","name":"comp: core","color":"c7def8"},{"url":"https://api.github.com/repos/angular/angular/labels/hotlist:%20CD%20size","name":"hotlist: CD size","color":"d4c5f9"},{"url":"https://api.github.com/repos/angular/angular/labels/P1:%20urgent","name":"P1: urgent","color":"eb6420"},{"url":"https://api.github.com/repos/angular/angular/labels/pr_action:%20review","name":"pr_action: review","color":"fbca04"},{"url":"https://api.github.com/repos/angular/angular/labels/type:%20feature","name":"type: feature","color":"EEEEEE"}],"state":"open","locked":false,"assignee":{"login":"tbosch","id":690815,"avatar_url":"https://avatars.githubusercontent.com/u/690815?v=3","gravatar_id":"","url":"https://api.github.com/users/tbosch","html_url":"https://github.com/tbosch","followers_url":"https://api.github.com/users/tbosch/followers","following_url":"https://api.github.com/users/tbosch/following{/other_user}","gists_url":"https://api.github.com/users/tbosch/gists{/gist_id}","starred_url":"https://api.github.com/users/tbosch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tbosch/subscriptions","organizations_url":"https://api.github.com/users/tbosch/orgs","repos_url":"https://api.github.com/users/tbosch/repos","events_url":"https://api.github.com/users/tbosch/events{/privacy}","received_events_url":"https://api.github.com/users/tbosch/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/angular/angular/milestones/42","html_url":"https://github.com/angular/angular/milestones/alpha-34","labels_url":"https://api.github.com/repos/angular/angular/milestones/42/labels","id":1222639,"number":42,"title":"alpha-34","description":"Current milestone.  Work on all issues to complete by Monday August 3 @ 8am PT; sync internal/external by August 5 EOD.","creator":{"login":"naomiblack","id":2286589,"avatar_url":"https://avatars.githubusercontent.com/u/2286589?v=3","gravatar_id":"","url":"https://api.github.com/users/naomiblack","html_url":"https://github.com/naomiblack","followers_url":"https://api.github.com/users/naomiblack/followers","following_url":"https://api.github.com/users/naomiblack/following{/other_user}","gists_url":"https://api.github.com/users/naomiblack/gists{/gist_id}","starred_url":"https://api.github.com/users/naomiblack/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/naomiblack/subscriptions","organizations_url":"https://api.github.com/users/naomiblack/orgs","repos_url":"https://api.github.com/users/naomiblack/repos","events_url":"https://api.github.com/users/naomiblack/events{/privacy}","received_events_url":"https://api.github.com/users/naomiblack/received_events","type":"User","site_admin":false},"open_issues":32,"closed_issues":28,"state":"open","created_at":"2015-07-23T18:50:11Z","updated_at":"2015-07-31T16:55:49Z","due_on":"2015-08-03T07:00:00Z","closed_at":null},"comments":2,"created_at":"2015-07-31T01:29:55Z","updated_at":"2015-07-31T16:58:15Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/angular/angular/pulls/3419","html_url":"https://github.com/angular/angular/pull/3419","diff_url":"https://github.com/angular/angular/pull/3419.diff","patch_url":"https://github.com/angular/angular/pull/3419.patch"},"body":"BREAKING CHANGE\r\n    Previously, if an element had a property, Angular would update that property even if there was a directive placed on the same element with the same property. Now, the directive would have to explicitly update the native elmement by either using hostProperties or the renderer."},"comment":{"url":"https://api.github.com/repos/angular/angular/issues/comments/126751867","html_url":"https://github.com/angular/angular/pull/3419#issuecomment-126751867","issue_url":"https://api.github.com/repos/angular/angular/issues/3419","id":126751867,"user":{"login":"vsavkin","id":35996,"avatar_url":"https://avatars.githubusercontent.com/u/35996?v=3","gravatar_id":"","url":"https://api.github.com/users/vsavkin","html_url":"https://github.com/vsavkin","followers_url":"https://api.github.com/users/vsavkin/followers","following_url":"https://api.github.com/users/vsavkin/following{/other_user}","gists_url":"https://api.github.com/users/vsavkin/gists{/gist_id}","starred_url":"https://api.github.com/users/vsavkin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vsavkin/subscriptions","organizations_url":"https://api.github.com/users/vsavkin/orgs","repos_url":"https://api.github.com/users/vsavkin/repos","events_url":"https://api.github.com/users/vsavkin/events{/privacy}","received_events_url":"https://api.github.com/users/vsavkin/received_events","type":"User","site_admin":false},"created_at":"2015-07-31T16:58:15Z","updated_at":"2015-07-31T16:58:15Z","body":"@pkozlowski-opensource there are two reasons:\r\n\r\nFirst, the new behavior is more flexible. For instance, currently there is no way for you not to update the DOM. Say, you have a directive that sits on some custom component. This directive has a property called \"mode\", and that custom component does not. Then, you get a new version of the custom component, and now it does have the mode property. You will have to change your directive to rename the property. You may not even be aware that the component got the mode property. With this change, you have an ability not to update the DOM. But if you need to, you can do it via hostProperties explicitly.\r\n\r\nSecond, it works better with Dart transformers, where we do not know what properties an element has."}}