пользовательская директива angularJS для таймера не работает

0

Поэтому у меня есть настраиваемая директива для моего таймера, использующего только элемент. Вход работает, и ярлык, который я сделал на заказ, но плагин timepicker, который я использовал, не будет работать. Я использую этот плагин для моего timepicker: http://timepicker.co/options/.

Это мой html:

  <apple-timepicker label="Time Picker: " a-id="time" ng-model="fieldTime" ></apple-timepicker>{-fieldTime-}

И моя настраиваемая директива js:

  apple.directive('appleTimepicker', function(){
var linker = function (scope, element, attrs, ngModel) {
    $(element).timepicker({
        timeFormat: 'h:mm p',
        interval: 15, // 15 minutes
        change: function(time) {
            scope.$apply(function() {
                // the input field
                var element = $(this), text;
                // get access to this TimePicker instance
                var timepicker = element.timepicker();
                text = timepicker.format(time);
                ngModel.$setViewValue(text);
            });
        }
    });
};
return {
    restrict: 'E',
    require: 'ngModel',
    template: '<label for="inputTimepicker">{-fieldLabel-}</label>'+
                '<div>'+
                    '<input type="text" id={-fieldId-} ng-model="fieldTime" readonly="true"/>'+
                '</div>',
    scope: {
        fieldLabel: '@label',
        fieldId: '@aId',
        fieldTime: '=ngModel'
    },
    controller: ['$scope',function($scope) {

    }],
    link: linker
};
});
  • 0
    Разработать "не работает"? Вы получаете ошибку? Что-то даже отображается?
  • 0
    @ User2341963. Введенный текст появится, однако плагин Timepicker не будет работать.
Показать ещё 1 комментарий
Теги:
angularjs-directive

1 ответ

0
Лучший ответ

Я думаю, что ваша функция компоновщика должна получить вход. Не базовый элемент div:

element.find('input').timepicker({
        timeFormat: 'h:mm p',
        interval: 15, // 15 minutes
        change: function (time) {
            scope.$apply(function () {
                // the input field
                var element = $(this);//, text;
                // get access to this TimePicker instance
                var timepicker = element.timepicker();
                var text = timepicker.format(time);
                ngModel.$setViewValue(text);
            });
        }
    });

Кроме того, нет причин для переноса элемента в объект jquery. Он уже завернут в объект jquery lite.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню