当我按键盘键时,例如0并且失去焦点它会自动设置为控制为00:00,但它不会更新模型值.
angular.module('test').directive('timePicker',[function () { return { restrict: 'A',require: 'ngModel',scope: { model: '=ngModel' },link: function ($scope,element,attrs,ngModelCtrl) { element.timepicker({'timeFormat' : 'H:i'}); ////element.on('change',function () { //// scope.$apply(function () { //// scope.model = element.datepicker('getTime'); //// }); ////}); ////$scope.$watch('model',function (newValues,oldValues,scope) { //// console.log("Nothing here"); ////}); } } }]); <input id="startTime" type="text" name="startTime" data-ng-model="vm.data.StartTime" time-picker />
由于模型未更新,我无法验证时间.
注释代码我试图更新值.
解决方法
发生这种情况是因为时间戳更改输入字段的值(可能使用$(“input”).val(“newval”))不会触发角度正在侦听的任何事件以启动摘要周期.
顺便说一句,我可以找到你可能想要使用的angular-jquery-timepicker.看一下它的源代码,好像在监听一个changeTime事件:
element.on('changeTime',function () { $scope.$apply(function () { $scope.model = element.val(); }); });
changeTime事件也是documented(请参阅“事件示例”).
在Plunkr中尝试一下.事实证明,收听改变事件也有效.