2012-03-13 53 views
3

爲什麼在重寫keyUp函數時TextField valueBind不正確?示例http://jsfiddle.net/z5SNW/3/。基本上,我每次按下輸入或用戶單擊該按鈕時都會警告TextField的值。問題是按下按鈕不會顯示實際值,直到您將焦點置於文本字段之外,然後單擊該按鈕。Ember.TextField valueBinding with keyUp Override

我可以通過在keyUp函數中設置其他值並將值設置在那裏來破解它,但這看起來並不正確。我想我只是想念一件非常簡單的事情。

回答

7

通過重寫keyUp,TextField的值僅在change事件被觸發(焦點丟失)時設置,請參閱code

如果您使用可用的insertNewline進行輸入處理,則一切正常:http://jsfiddle.net/z5SNW/6/

App = Ember.Application.create({}); 

App.TextField = Em.TextField.extend({ 
    valueBinding: 'App.TextValue.value', 
    insertNewline: function() { 
     alert('Submitted: ' + App.TextValue.get('value')); 
    } 
}); 

App.TextValue = Em.Object.create({ 
    value: '' 
}); 

App.SubmitButton = Em.Button.extend({ 
    click: function() { 
     alert(App.TextValue.get('value')); 
    } 
});​ 

或者你保持你的keyUp實現(如果你打算採取行動的其他鍵代碼的爲好,但你必須打電話this.interpretKeyEvents(event);,見http://jsfiddle.net/z5SNW/8/

+0

我知道這是一些簡單的我失蹤, 謝謝! – mlienau 2012-03-13 19:27:55