{"action":"closed","issue":{"url":"https://api.github.com/repos/ractivejs/ractive/issues/1922","labels_url":"https://api.github.com/repos/ractivejs/ractive/issues/1922/labels{/name}","comments_url":"https://api.github.com/repos/ractivejs/ractive/issues/1922/comments","events_url":"https://api.github.com/repos/ractivejs/ractive/issues/1922/events","html_url":"https://github.com/ractivejs/ractive/issues/1922","id":68594430,"number":1922,"title":"Two-way false, set doesn't sync data with input","user":{"login":"fskreuz","id":1582932,"avatar_url":"https://avatars.githubusercontent.com/u/1582932?v=3","gravatar_id":"","url":"https://api.github.com/users/fskreuz","html_url":"https://github.com/fskreuz","followers_url":"https://api.github.com/users/fskreuz/followers","following_url":"https://api.github.com/users/fskreuz/following{/other_user}","gists_url":"https://api.github.com/users/fskreuz/gists{/gist_id}","starred_url":"https://api.github.com/users/fskreuz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fskreuz/subscriptions","organizations_url":"https://api.github.com/users/fskreuz/orgs","repos_url":"https://api.github.com/users/fskreuz/repos","events_url":"https://api.github.com/users/fskreuz/events{/privacy}","received_events_url":"https://api.github.com/users/fskreuz/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-04-15T06:55:05Z","updated_at":"2015-05-27T21:01:07Z","closed_at":"2015-05-27T21:01:07Z","body":"http://jsbin.com/jabirokuvu/1/edit?html,js,output\r\n\r\nTemplate\r\n```\r\n<script type=\"text/template\" id=\"test\">\r\n    {{foo}}\r\n    <input type=\"text\" value=\"{{foo}}\" on-keyup=\"test()\" />\r\n</script>\r\n```\r\n\r\nJS\r\n```\r\nvar foo = new Ractive({\r\n    twoway: false,\r\n    el: 'body',\r\n    append: true,\r\n    template: '#test',\r\n    data: {\r\n        // This is blank to begin with\r\n        foo: '',\r\n    },\r\n    test: function(){\r\n      // Let's say we did validation, stripped invalid characters and got ourselves a blank.\r\n      this.set('foo', '');\r\n\r\n      // Oh, it won't be marked \"dirty\" because it's still blank. Let's update for force the UI.\r\n      this.update();\r\n      \r\n      // The input still has the same value??? Not blank?? D:\r\n    }\r\n});\r\n```\r\n\r\nSo let's say i have an input, that when the user inputs, passes through a validator in the data layer. The data layer then does some validation (like stripping of characters etc.) then returns the stripped value to the component.\r\n\r\nNow, there will be times when the validation will just strip everything off leaving me with a blank string, and the component starts off with a blank string. Ractive seems to dismiss this as not dirty since it's blank to begin with and blank after, *but the input already has a value*. So I resort to force the UI with `update` but then, nothing happens.\r\n\r\nAre there any workarounds or recommendations for this? I was expecting `set` to do refresh the UI or at least the input be in sync on every `set`."}}