コントローラーから、ビュー テンプレートを使用して基本的なデータ バインディングを複製しようとしています。ストレートJSとjQueryを使用して構築しています。ユーザーがフィールドに入力するときに変更したいコントローラー関数に変数があります。イベントは適切に発生していますが、変数は変更されていません。これが機能するように変数をスコープする最良の方法は何ですか:
function myController() {
var password = '1234';
//handle data binding
bindTo = function(elem, prop) {
console.log('original stored prop = ' + prop); //this logs out 1234
//BUT only the first time
//on every subsequent keypress it logs out the value that the user types
//which has no effect on the var password in the controller
var elem = $(elem);
var value = elem.val();
// Save current value of element
elem.data('oldVal', value);
// Look for changes in the value
elem.bind("propertychange keyup input paste", function(event){
console.log('inside bind fn prop = ' + prop)
var val = elem.val();
// If value has changed...
if (elem.data('oldVal') != val) {
// Updated stored value
elem.data('oldVal', val);
prop = val; //where is prop being set?
console.log(prop); //this logs my value properly
}
});
};
//set bindings
bindTo($('input.loginPassword')[0], password);
}