我有一个触发DOM事件的手表:
scope.$watch(function() { return controller.selected; }, function(selected) {
if (selected) {
$input.trigger('focus');
}
});
问题是,我有,做了“专注”的处理程序scope.$apply
。
$input.bind('focus', function() {
scope.$apply(function() { controller.focused = true; });
});
所以,当我的$watch
是由内解雇$digest
,因为它试图触发另一个则导致错误出现$digest
。
解决方法我是把触发器在$timeout
。
scope.$watch(function() { return controller.selected; }, function(selected) {
if (selected) {
$timeout(function() { $input.trigger('focus'); });
}
});
这个工程......至今。 这是处理这一正确的方法是什么? 我不知道这是否捕捉每一种情况下,想看看是否有一个角批准的方式有一块代码延迟为消化后。
谢谢!