{"action":"created","issue":{"url":"https://api.github.com/repos/ractivejs/ractive/issues/2573","repository_url":"https://api.github.com/repos/ractivejs/ractive","labels_url":"https://api.github.com/repos/ractivejs/ractive/issues/2573/labels{/name}","comments_url":"https://api.github.com/repos/ractivejs/ractive/issues/2573/comments","events_url":"https://api.github.com/repos/ractivejs/ractive/issues/2573/events","html_url":"https://github.com/ractivejs/ractive/pull/2573","id":160124771,"number":2573,"title":"Check check for binding updates before the observer phase to unlock the attr - #2427","user":{"login":"evs-chris","id":161978,"avatar_url":"https://avatars.githubusercontent.com/u/161978?v=3","gravatar_id":"","url":"https://api.github.com/users/evs-chris","html_url":"https://github.com/evs-chris","followers_url":"https://api.github.com/users/evs-chris/followers","following_url":"https://api.github.com/users/evs-chris/following{/other_user}","gists_url":"https://api.github.com/users/evs-chris/gists{/gist_id}","starred_url":"https://api.github.com/users/evs-chris/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/evs-chris/subscriptions","organizations_url":"https://api.github.com/users/evs-chris/orgs","repos_url":"https://api.github.com/users/evs-chris/repos","events_url":"https://api.github.com/users/evs-chris/events{/privacy}","received_events_url":"https://api.github.com/users/evs-chris/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2016-06-14T08:29:48Z","updated_at":"2016-06-15T12:16:58Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ractivejs/ractive/pulls/2573","html_url":"https://github.com/ractivejs/ractive/pull/2573","diff_url":"https://github.com/ractivejs/ractive/pull/2573.diff","patch_url":"https://github.com/ractivejs/ractive/pull/2573.patch"},"body":"**Description of the pull request:**\r\nThis is a weird one that is caused by behavior that should probably be dropped since laziness is available to help with input validation. At any rate, this checks the see if a binding's model changes to something not set immediately after it is set and before any observers get a chance to fire. If the value is not the same, then the attribute is unlocked so that the binding doesn't get stuck on the old value.\r\n\r\nOne side effect is that as soon as you press a key that triggers a re-sort on the underlying list, your current box is shuffled off and the new one (actually the same one with a new value, but you get the idea) is sitting there with focus. I think that's better behavior than getting one value stuck in the old box while the new one appears correctly in the new destination. Again, `lazy` can resolve that entirely. \r\n\r\nA further potential side-effect would be that binding to a computation that morphs inputs would get cursor resets while typing. And again, I believe `lazy` is the solution.\r\n\r\nThoughts?\r\n\r\n**Fixes the following issues:**\r\n#2427\r\n\r\n**Is breaking:**\r\nMaybe? It wasn't really well-defined behavior to begin with...\r\n\r\n**Reviewers:**\r\n@martypdx @fskreuz please"},"comment":{"url":"https://api.github.com/repos/ractivejs/ractive/issues/comments/226169975","html_url":"https://github.com/ractivejs/ractive/pull/2573#issuecomment-226169975","issue_url":"https://api.github.com/repos/ractivejs/ractive/issues/2573","id":226169975,"user":{"login":"heavyk","id":1226324,"avatar_url":"https://avatars.githubusercontent.com/u/1226324?v=3","gravatar_id":"","url":"https://api.github.com/users/heavyk","html_url":"https://github.com/heavyk","followers_url":"https://api.github.com/users/heavyk/followers","following_url":"https://api.github.com/users/heavyk/following{/other_user}","gists_url":"https://api.github.com/users/heavyk/gists{/gist_id}","starred_url":"https://api.github.com/users/heavyk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/heavyk/subscriptions","organizations_url":"https://api.github.com/users/heavyk/orgs","repos_url":"https://api.github.com/users/heavyk/repos","events_url":"https://api.github.com/users/heavyk/events{/privacy}","received_events_url":"https://api.github.com/users/heavyk/received_events","type":"User","site_admin":false},"created_at":"2016-06-15T12:16:58Z","updated_at":"2016-06-15T12:16:58Z","body":"even though I don't understand the locking logic very well (and all of its implications), I'd still say LGTM :)"}}
{"actor":{"display_login":"heavyk"}}