0

이 코드는 모든 주요 브라우저에서 정상적으로 작동하지만 Edge는 DOM 검사기에서만 유효한 값을 표시하지만 페이지에서는 여전히 오래된 값을 표시합니다. 왜? 페이지의 DOM 관리자의 유효한 값과 유효하지 않은 결과 에지에서Edge에서 AngularJS 지시어가 Edge에서 작동하지 않는 이유는 무엇입니까?

(function (angular, module) { 

    'use strict'; 

    module 
    .directive('psEffectsDurationSlider', EffectsDurationSlider); 

    EffectsDurationSlider.$inject = []; 

    function EffectsDurationSlider() { 
    return { 
     require: 'ngModel', 
     restrict: 'E', 
     link:  link 
    }; 

    function link(scope, element, attrs, ngModel) { 
     ngModel.$render = render; 

     activate(); 

     function initializeSlider() { 
     element.slider({ 
      min:   0.2, 
      max:   2, 
      step:  0.1, 
      animate:  true, 
      orientation: 'horizontal', 
      range:  'min', 
      slide:  onSliderChange 
     }); 
     } 

     function render() { 
     element.slider('value', ngModel.$viewValue); 
     } 

     function onSliderChange(event, ui) { 
     ngModel.$setViewValue(ui.value); 
     } 

     function onScopeDestroy() { 
     element.slider('destroy'); 
     } 

     function activate() { 
     initializeSlider(); 

     scope.$on('$destroy', onScopeDestroy); 
     } 
    } 
    } 

})(window.angular, window.angular.module('...')); 

스크린 샷 : enter image description here

답변

0

슬라이더 이벤트 이후 $timeout에서 모델 업데이트를 포장 시도는 각 상황의 밖에

function onSliderChange(event, ui) { 
    $timeout(function(){ 
     ngModel.$setViewValue(ui.value); 
    }); 
    } 

주사해야합니다. $timeout

+0

이미 시도했습니다. 작동하지 않았다. – kovalevsky

관련 문제