2016-05-27 2 views
0

У меня есть ввод времени и директива, которую я хотел бы получить для пользовательской проверки. Мне нужно иметь как время начала, так и время окончания. Поэтому я передаю два значения, используя модели в директиве.Передача двух значений в директиву AngularJS

<input type="time" data-ng-model="activity.etime" data-ng-date="activity.stime, activity.etime" > 

Вот моя директива. Когда я пытаюсь получить доступ ко второму параметру, он дает мне неопределенное значение (первое - это хорошо). Неправильно ли это использовать два значения для директивы?

app.directive('ngDate', function() { 
    'use strict'; 
    return { 
     require: 'ngModel', 
     link: function (scope, element, attr, aCtrl) {    
      function myValidation(stime,etime) {   
       console.log(etime);    
      } 
     }  
    }; 
}); 
+0

Простым решением является разделение валидатора на два валидатора 'max-date = ...' и 'min-date = ...', которые могут использоваться отдельно или в паре. Другой способ заключается в том, чтобы поместить данные в атрибуты и использовать 'attr', чтобы читать их или лучше' attr. $ Oberve', в этом случае у вас будет 'validate-date min-date =" ... "max-date = «...» ' – csharpfolk

+1

Что сказал @csharpfolk, или вы также можете просто перейти в' activity' и вытащить 'stime' и' etime' из объекта – DerekMT12

ответ

1

Вы действительно должны разделить их на два разных параметра или просто передать объект, содержащий эти два атрибута. Если вы действительно хотите этого, вы могли бы, возможно, сделать:

<input type="time" data-ng-model="activity.etime" data-ng-date="{activity.stime, activity.etime}" > 

И тогда вы могли бы, вероятно, получить доступ к ним, как это:

function myValidation(time) {   
    console.log(time.activity.stime, time.activity.etime);    
} 

Отказ от ответственности: я не проверял это.

+0

Я просто попробовал, и он не работает. Я получаю это в консоли браузера: TypeError: Не могу прочитать свойство «stime» undefined – Lester

+0

Ну, как я уже сказал, я не тестировал его lol. Можете ли вы сделать console.log (время, активность), чтобы мы могли видеть, что в переменной? – wdanda

+0

Время возвращает etime, активность возвращает активность не определена – Lester

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