当我按键盘键时,例如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 />
由于模型未更新,我无法验证时间。 注释代码我试图更新值。
答案 0 :(得分:6)
这是因为时间戳更改输入字段的值(可能使用$("input").val("newval")
)不会触发任何角度正在侦听的事件以启动摘要周期。
我可以找到你可能想要使用的angular-jquery-timepicker。看一下它的源代码,好像在听一个changeTime
事件:
element.on('changeTime', function () {
$scope.$apply(function () {
$scope.model = element.val();
});
});
changeTime
事件也是documented(请参阅“事件示例”)。
在此Plunkr中尝试一下。事实证明,听change
事件也有效。