2014-09-23 19 views
0

Datepicker獲取日期並將其放入input字段。輸入標記爲required,但AngularJS無法看到更改並將其標記爲有效。爲什麼?AngularJs無法看到更新的輸入值並設置ng無效

HTML

<div class="form-group" ng-class="{ 'has-error': myForm.inputDatetimeStart.$invalid }"> 
    <label for="datetimepicker_start" class="col-sm-3 control-label">Start date and time: </label> 
    <div class="col-sm-8"> 
     <input class="form-control" name="inputDatetimeStart" ng-model="datetime_start" id="datetimepicker_start" type="text" required> 
    </div> 
</div> 

JS

angular.module('myApp', ['ajoslin.promise-tracker', 'ngRoute']) 
    .controller('myCtrl', function ($scope, $http, $log, promiseTracker, $timeout){ 
     jQuery('#datetimepicker_start').datetimepicker({ }); 
     ... 

    } 
+1

因爲jQuery datepicker在更新輸入框時所做的事情並非由Angular「看到」。如果你希望它能夠正常工作,你應該創建一個包裝jQuery datetimepicker功能的指令,然後發送適當的事件和/或作用域$ jQuery datepicker庫做什麼時可以應用 – JoseM 2014-09-23 13:08:12

+0

你能提供示例代碼嗎? – 2014-09-23 13:57:35

回答

1

嘗試使用

$scope.$watch('datetime_start', function() { 
    $scope.$apply(); 
}) 

它將使摘要週期發生。