2016-08-11 1 views
0

jQuery UI Datepickerをいくつかの入力に適用するためのカスタムディレクティブがあります。私は日付を選ぶことができ、それは入力を更新する。しかし、私は結果を投稿します。編集された入力(コントロール)はダーティとマークされないので、変更は保存されません。私は、スコープ、要素、ngModelを使用して試してみましたし、汚れに手付かずから変更するには、コントロールの状態を取得することはできません..以下datepickerディレクティブでは角張っていません

 <td> 
     <input type="text" jqdatepicker name="Delegation.StartDate" ng-model="delegation.StartDate" /> 
     </td> 
     <td> 
     <input type="text" jqdatepicker name="Delegation.EndDate" ng-model="delegation.EndDate" /> 
     </td> 

App.directive('jqdatepicker', function() { 
return { 
    restrict: 'A', 
    require: 'ngModel', 
    link: function (scope, element, attrs, ngModelCtrl) { 
     element.datepicker({ 
      dateFormat: 'm/dd/yy', 
      onSelect: function (date) { 
       scope.date = date; 
       scope.$apply(); 
       ngModelCtrl.$setDirty(); <--doesn't work 
      } 
     }); 
    } 
};}); 

を参照してください。保存すると、クラスng-dirtyを持つものの行(tr)をスクラップして処理します。どのようにこれを行うにはどのような考え?私は問題なく約8ページに同じメソッドを使用しますが、ディレクティブ/日付ピッカーは使用しません。

+1

まあ...いつでも[angle-ui datepicker](https://angular-ui.github.io/bootstrap/#/datepicker)を使用できますか? –

+0

あなたは 'scope。$ apply()'の中で更新をラップしようとしましたか?つまり、 'scope。$ apply(function(){scope.date = date;});'です。 – Lex

+0

まだ、それを更新していない:( – user1732364

答えて

1

多くの試行錯誤と読書の後に。私はついにそれを働かせました!以下は指令です。

App.directive('jqdatepicker', function() { 
return { 
    restrict: 'A', 
    require: 'ngModel', 
    link: function (scope, element, attrs, ngModelCtrl) { 
     element.datepicker({ 
      dateFormat: 'm/dd/yy', 
      onSelect: function (date) { 
       console.log(ngModelCtrl); 
       ngModelCtrl.$setViewValue(date); 
      } 
     }); 
    } 
}; 

});

関連する問題