繁体   English   中英

用于时间选择器的angularJS自定义指令不起作用

[英]angularJS custom directive for timepicker not working

所以我只使用element为我的时间选择器提供了一个自定义指令。 输入有效,我自定义的标签也起作用,但是我使用的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
};
});

我认为您的链接器功能需要获取输入。 不是基本的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对象中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM