2016-01-20 4 views
0

Я пытаюсь установить значение области из функции ссылки внутри директивы, но она, похоже, не работает.Изменение области действия в директивной ссылке

Я в основном пытаюсь установить значение области, когда пользователь изменяет поле выбора даты, как показано ниже ...

app.directive('searchForm', function() { 
return{ 
    replace: true, 
    restrict: 'E', 
    templateUrl: "/app/views/sales/search/search-form.html", 
    link: function(element,attrs,scope){ 
     $('.checkIn').datepicker({ 
      minDate: new Date(), 
      onSelect: function(date){ 
      var selectedDate = new Date(date); 
      var msecsInADay = 86400000; 
      var endDate = new Date(selectedDate.getTime() + msecsInADay); 

      $(".checkOut").datepicker("option", "minDate", endDate); 
      $(".checkOut").datepicker("option", "maxDate", '+2y'); 
      $('.checkOut').attr('disabled', false); 
      if($('.checkOut').val()){ 
       $('.numNights').val(($('.checkOut').datepicker('getDate') - $(this).datepicker('getDate'))/1000/60/60/24); 
      } 
      } 
     }); 


     $('.checkOut').datepicker({ 
      onSelect :function(){ 
       scope.$apply(function(){ 
        scope.search.nights = "Test"; 
       }); 
      } 
     });    
    } 
}; 

});

Я также пробовал scope.$apply(), но это также не работает.

Любая помощь очень ценится.

ответ

1

Функция «ссылка» имеет неправильную подпись. Оно должно быть:

function link (scope, element, attrs, controller, transcludeFn) { ... } 

См Создание директивы, которая манипулирует раздел DOM в documentation. Или еще лучше это document.

+0

Спасибо! Это сработало! –

Смежные вопросы