Javascript 如何使用ng型号选项强制输入更改触发器';安格拉斯的德布恩是谁?

Javascript 如何使用ng型号选项强制输入更改触发器';安格拉斯的德布恩是谁?,javascript,angularjs,Javascript,Angularjs,我正在测试我的图书馆。问题是为了避免经常更新,我在文本字段中进行了去盎司处理 像 它将失败,因为我必须添加$timeout。因此,10次测试=5秒延迟,这是不合适的 如何强制更改触发器以避免去抖动或触发模糊?似乎只是使用$timeout,即使没有延迟也能做到这一点: $timeout(function(){ expect(scope.obj.name).toEqual('Max'); }) 模拟的$timeout服务有一个flush方法,您可以使用它在单元测试中触发更新 it('sho

我正在测试我的图书馆。问题是为了避免经常更新,我在文本字段中进行了去盎司处理

它将失败,因为我必须添加$timeout。因此,10次测试=5秒延迟,这是不合适的


如何强制
更改
触发器以避免去抖动或触发
模糊

似乎只是使用
$timeout
,即使没有
延迟
也能做到这一点:

$timeout(function(){
    expect(scope.obj.name).toEqual('Max');
})

模拟的
$timeout
服务有一个
flush
方法,您可以使用它在单元测试中触发更新

it('should set with debounce', inject(function ($timeout) {
    input.val('Max').triggerHandler('input');
    $timeout.flush();
    expect(scope.obj.name).toEqual('Max');
}));

谢谢,这很有效。奇怪的是,在浏览器中setTimeout可以工作,而在单元测试中却不能。
$timeout(function(){
    expect(scope.obj.name).toEqual('Max');
})
it('should set with debounce', inject(function ($timeout) {
    input.val('Max').triggerHandler('input');
    $timeout.flush();
    expect(scope.obj.name).toEqual('Max');
}));