有没有办法在angularjs中正确的订单活动?

时间:2014-03-08 00:56:33

标签: angularjs events

我有很多令人头疼的事情试图让$ 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();
                }); 

enter image description here

有没有办法在所有浏览器中执行此操作?

1 个答案:

答案 0 :(得分:1)

在渲染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);
};  
...