入力フィールドをjquery timepickerに変換する角度アプリ用の共有ディレクティブを作成しようとしています。
fromTime と toTime の 2 つの入力フィールドがあり、fromTime が変更されたときに toTime を更新したいと考えています。
私のコードは次のとおりです。
HTML
<input type="text"
time-picker="{ timeFormat: 'H:i'}"
class="input-block-level"
name="fromTime"
ng-model="filter.fromTime"
ng-change="update()"
/>
<input type="text"
time-picker="{ timeFormat: 'H:i'}"
class="input-block-level"
name="toTime"
ng-model="filter.toTime"
ng-change="update()"
/>
指令
sharedServices.directive('TimePicker', function () {
return {
restrict: 'A',
scope: {
time: "=ngModel"
},
link: function(scope, element, attrs) {
//Initialize the timepicker
$(element).timepicker(scope.$eval(attrs.TimePicker));
//watch for changes
scope.$watch('time', function(stuff) {
console.log('some change', stuff);
});
}
};
});
含まれる共有サービス
var roomsApp = angular.module("roomsApp", ["ngResource",'ui', 'sharedServices','ui.bootstrap']).config(function($routeProvider) { ...
ディレクティブが読み込まれ、タイムピッカーが初期化されて要素にアタッチされますが、入力フィールドを変更しても、要素にアタッチされている ng-change イベントでさえ何も起こりません。モデルがアプリのコントローラーで何らかの値を含むように設定されていても、ページが読み込まれると、入力フィールドも空になります。誰かが問題に光を当てることができますか?
*更新 http://plnkr.co/edit/t3BzShezEdh29ZAlI8ZI?p=previewこれは私の問題を示しています。日付が変更された場合、コンソールには何も記録されません