{"action":"created","issue":{"url":"https://api.github.com/repos/angular/angular/issues/5918","labels_url":"https://api.github.com/repos/angular/angular/issues/5918/labels{/name}","comments_url":"https://api.github.com/repos/angular/angular/issues/5918/comments","events_url":"https://api.github.com/repos/angular/angular/issues/5918/events","html_url":"https://github.com/angular/angular/issues/5918","id":122347409,"number":5918,"title":"Possible slice bug in beta 0","user":{"login":"johnpapa","id":1202528,"avatar_url":"https://avatars.githubusercontent.com/u/1202528?v=3","gravatar_id":"","url":"https://api.github.com/users/johnpapa","html_url":"https://github.com/johnpapa","followers_url":"https://api.github.com/users/johnpapa/followers","following_url":"https://api.github.com/users/johnpapa/following{/other_user}","gists_url":"https://api.github.com/users/johnpapa/gists{/gist_id}","starred_url":"https://api.github.com/users/johnpapa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/johnpapa/subscriptions","organizations_url":"https://api.github.com/users/johnpapa/orgs","repos_url":"https://api.github.com/users/johnpapa/repos","events_url":"https://api.github.com/users/johnpapa/events{/privacy}","received_events_url":"https://api.github.com/users/johnpapa/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/angular/angular/milestones/52","html_url":"https://github.com/angular/angular/milestones/beta.1","labels_url":"https://api.github.com/repos/angular/angular/milestones/52/labels","id":1378400,"number":52,"title":"beta.1","description":"Things to do after Beta that take us towards Angular 2 final release.","creator":{"login":"mhevery","id":111951,"avatar_url":"https://avatars.githubusercontent.com/u/111951?v=3","gravatar_id":"","url":"https://api.github.com/users/mhevery","html_url":"https://github.com/mhevery","followers_url":"https://api.github.com/users/mhevery/followers","following_url":"https://api.github.com/users/mhevery/following{/other_user}","gists_url":"https://api.github.com/users/mhevery/gists{/gist_id}","starred_url":"https://api.github.com/users/mhevery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhevery/subscriptions","organizations_url":"https://api.github.com/users/mhevery/orgs","repos_url":"https://api.github.com/users/mhevery/repos","events_url":"https://api.github.com/users/mhevery/events{/privacy}","received_events_url":"https://api.github.com/users/mhevery/received_events","type":"User","site_admin":false},"open_issues":76,"closed_issues":7,"state":"open","created_at":"2015-10-27T00:25:16Z","updated_at":"2015-12-27T12:48:00Z","due_on":null,"closed_at":null},"comments":24,"created_at":"2015-12-15T19:30:35Z","updated_at":"2015-12-27T16:12:50Z","closed_at":null,"body":"Possible bug with `slice` in `alpha.55` and `beta 0` … was there a change with slice recently?\r\n\r\n```angular2.dev.js:23524 EXCEPTION: Expression 'heroes | slice:0:4 in DashboardComponent@2:6' has changed after it was checked. Previous value: ''. Current value: '' in [heroes | slice:0:4 in DashboardComponent@2:6]\r\n\r\nThe app gets a list and then slices them. No changes are made on load.\r\n\r\nThe app works without slice.\r\n\r\n// cc @wardbell\r\n"},"comment":{"url":"https://api.github.com/repos/angular/angular/issues/comments/167422071","html_url":"https://github.com/angular/angular/issues/5918#issuecomment-167422071","issue_url":"https://api.github.com/repos/angular/angular/issues/5918","id":167422071,"user":{"login":"mhevery","id":111951,"avatar_url":"https://avatars.githubusercontent.com/u/111951?v=3","gravatar_id":"","url":"https://api.github.com/users/mhevery","html_url":"https://github.com/mhevery","followers_url":"https://api.github.com/users/mhevery/followers","following_url":"https://api.github.com/users/mhevery/following{/other_user}","gists_url":"https://api.github.com/users/mhevery/gists{/gist_id}","starred_url":"https://api.github.com/users/mhevery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhevery/subscriptions","organizations_url":"https://api.github.com/users/mhevery/orgs","repos_url":"https://api.github.com/users/mhevery/repos","events_url":"https://api.github.com/users/mhevery/events{/privacy}","received_events_url":"https://api.github.com/users/mhevery/received_events","type":"User","site_admin":false},"created_at":"2015-12-27T16:12:49Z","updated_at":"2015-12-27T16:12:49Z","body":"Yes, more clever change detection would solve it. But how much more clever.\nThe trouble with such approaches is that at some point you fall of the\nclever cliff and you are surprised. No matter how clever you make it I can\nconstruct a case where it would not be caught. Why stop with arrays? How\nabout objects as well. This is a very slippery slope, which leads to\nperformance problems and inconsistencies.\n\nGoing by references, is simple, fast, and most importantly predictable\n(even if in some cases it is not what one would expect at the surface)\n\nOn Sat, Dec 26, 2015 at 12:13 PM Artem Andreev <notifications@github.com>\nwrote:\n\n> You mean it can be spliced, sorted, etc? Then maybe we need a bit more\n> clever change detection strategy instead of marking slice pipe as non-pure\n> (something like watchCollection from Angular1)?\n>\n> —\n> Reply to this email directly or view it on GitHub\n> <https://github.com/angular/angular/issues/5918#issuecomment-167357248>.\n>\n"}}