有没有办法在angularjs中正确排序事件?

有没有办法在angularjs中正确排序事件?,angularjs,events,Angularjs,Events,我在试图使$watch在窗体元素上的事件之前执行时遇到了很多麻烦(更确切地说是复选框)。唯一有效的浏览器是FF scope.$watch(attrs.ngModel, function($v){ console.log("1 = "+$v); }); // elem corresponds to the element in form (i.e.: che

我在试图使$watch在窗体元素上的事件之前执行时遇到了很多麻烦(更确切地说是复选框)。唯一有效的浏览器是FF

                scope.$watch(attrs.ngModel, function($v){

                    console.log("1 = "+$v);

                });

                // elem corresponds to the element in form (i.e.: checkbox)
                elem.bind('change', function(evt){

                    console.log("2 = "+control.$modelValue);

                    scope.$digest();
                }); 


有没有一种方法可以在所有浏览器中完成这项工作

事件在呈现DOM之前引发(以允许操作),因此如果要在呈现后使用字段中的值,可以使用
$timeout

例如,检查指令中的表单字段是否脏

elm.bind('keydown', function(event) {              
     if (event.which === 13) 
          scope.update();

     scope.check_dirty();
});

scope.check_dirty = function() {
    // wait for the DOM to finish rendering
    $timeout(function() {
        if ( elm.val().trim() !== scope.last_saved_value )
            elm.addClass('calc-dirty-input');
        else
            elm.removeClass('calc-dirty-input');
    },0);
};  
...

你想干什么?在任何浏览器中都可能无法保证事件的顺序。我的朋友不只是/?