2014-09-10 3 views
0

plunker에 표시된 지시문을 사용하고 있습니다.존재하는 각도 지침에 시계를 추가하는 방법은 무엇입니까?

app.directive('datetimez', function() { 
    return { 
     restrict: 'A', 
     require : 'ngModel', 
     link: function(scope, element, attrs, ngModelCtrl) { 
      element.datetimepicker({ 
      dateFormat:'dd/MM/yyyy hh:mm:ss', 
      language: 'pt-BR' 
      }).on('changeDate', function(e) { 
      ngModelCtrl.$setViewValue(e.date); 
      scope.$apply(); 
      }); 
     } 
    }; 
}); 

이 지시문의 목적은 datetime picker here을 사용하는 것입니다. API는 날짜 설정에 setLocalDate 및 setDate라는 두 가지 메소드를 제공합니다. 컨트롤을 사용할 때 모델이 업데이트되지만 코드에서 모델을 변경할 때 뷰가 업데이트되지 않습니다. 나는 angular 지시어를 다루는 데 꽤 초보자 다.하지만 필자는 지시어에 watch 함수를 추가해야하고 datepicker의 API 함수를 사용하여 날짜를 설정하는 방법을 알지 못한다.

도움을 주시면 감사하겠습니다.

감사합니다. 오메르.

답변

0

남자, 내가 필요한 변경 한 당신은 here

그냥 다음과 같이 $watch 기능을 추가 찾을 수 있습니다

app.directive('datetimez', function() { 
    return { 
     restrict: 'A', 
     scope:{dateVal: '=ngModel'}, 
     require : 'ngModel', 
     link: function(scope, element, attrs, ngModelCtrl) { 
      element.datetimepicker({ 
      dateFormat:'dd/MM/yyyy hh:mm:ss', 
      language: 'pt-BR' 
      }).on('changeDate', function(e) { 
      scope.dateVal = e.date; 
      scope.$apply(); 
      }); 

      scope.$watch('dateVal',function(newVal){ 
      var picker = $(element).data('datetimepicker'); 
      picker.setDate(newVal) 
      }); 
     } 
    }; 
}); 
+0

는 'val1과는'무엇을 의미합니까? 그것은 모델의 이름이어야합니까? –

+0

@omerbach'val1'은 여러분이 여러분의 범위에서보고 싶은 변수입니다. 컨트롤러에서'$ scope.val1 = new Date (1998, 10, 11, 4, 30); . 지시문의 범위는 –

+0

을 포함하는 컨트롤러의 범위와 동일하지만이 방법을 사용하면 응용 프로그램에서이 지시문을 사용하고 싶을 때 특정 이름으로 ng 모델을 호출해야합니다. –

관련 문제