Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角度更改处理程序获取旧值_Angularjs_Angular Ngmodel - Fatal编程技术网

Angularjs 角度更改处理程序获取旧值

Angularjs 角度更改处理程序获取旧值,angularjs,angular-ngmodel,Angularjs,Angular Ngmodel,我正在创建angular指令,它用引导表单组包装html输入。我使用ng change事件来侦听更改,但我在ng change处理程序中得到了旧值。为了显示这一点,我创建了相同的指令,一个使用ng keyup,另一个使用ng change事件来侦听更改 var-app=angular.module('app',[]); 应用程序控制器('home',函数(){ this.textKeyUp='KeyUp'; this.textNgChange='NgChange'; this.textKeyU

我正在创建angular指令,它用引导表单组包装html输入。我使用ng change事件来侦听更改,但我在ng change处理程序中得到了旧值。为了显示这一点,我创建了相同的指令,一个使用ng keyup,另一个使用ng change事件来侦听更改

var-app=angular.module('app',[]);
应用程序控制器('home',函数(){
this.textKeyUp='KeyUp';
this.textNgChange='NgChange';
this.textKeyUpChanged=函数(){
console.log('在KeyUp上更改:',this.textKeyUp);
};
this.textNGChanged=函数(){
console.log('在NgChange上更改:',this.textNgChange);
};
});
app.directive('apTextKeyUp',function(){
返回{
控制器:函数(){},
controllerAs:'ctrl',
bindToController:{
型号:'=',
更改:“&”
},
作用域:{},
模板:“”
};
});
app.directive('apTextNgChange',function(){
返回{
控制器:函数(){},
controllerAs:'ctrl',
bindToController:{
型号:'=',
更改:“&”
},
作用域:{},
模板:“”
};
});

松开键
NgChange

当使用Primative type作为ng模型值时,似乎会在值更改时调用ng change。由于这是一种原始类型,因此该值尚未传播到homeCtroller。如果将该指令传递给引用对象,则一切正常

通过引用传递文本
var-app=angular.module('app',[]);
应用程序控制器('home',函数(){
this.text={val:'ABC'};
this.textChanged=函数(){
console.log('Changed:',this.text.val);
};
});
app.directive('apText',function(){
返回{
控制器:函数(){
var vm=这个;
vm.onChange=函数(){
log(vm.model);
vm.change();
};
},
controllerAs:'ctrl',
bindToController:{
型号:'=',
更改:“&”
},
范围:正确,
模板:“”
};
});


您认为可以提供此实现的JSFIDLE或plunkr吗?由于ng keyup事件,您的代码可以正常工作。它不适用于ng更改事件。我会更新这个问题来说明这一点。