タイムスタンプのリストがあります。それらを AngularJS で一覧表示できます。ただし、日付文字列としてリストしたい。これらの日付文字列は編集可能である必要があります。終了したら、関連するタイムスタンプも更新したいと思います。
私の最初の質問は、アイテムを異なる形式 (フィルター?) で表示し、双方向のデータ バインディングを維持する AngularJS の方法は何ですか? (モジュール、ディレクティブ、リスナー?)
ありがとうございました
タイムスタンプのリストがあります。それらを AngularJS で一覧表示できます。ただし、日付文字列としてリストしたい。これらの日付文字列は編集可能である必要があります。終了したら、関連するタイムスタンプも更新したいと思います。
私の最初の質問は、アイテムを異なる形式 (フィルター?) で表示し、双方向のデータ バインディングを維持する AngularJS の方法は何ですか? (モジュール、ディレクティブ、リスナー?)
ありがとうございました
編集可能なデータが生データ (タイムスタンプ) の場合は、フィルターを使用する必要があります。
ただし、日付文字列形式で編集可能にしたい場合は、ngModel+input
カスタム$parsers
とを追加して、 を拡張するディレクティブを作成する必要があります$formatters
。
それは確かに非常に簡単です:
app.directive('dateFormat', function() {
return {
require: 'ngModel',
link: function(scope, element, attr, ngModelCtrl) {
ngModelCtrl.$formatters.unshift(function(valueFromModel) {
// return how data will be shown in input
});
ngModelCtrl.$parsers.push(function(valueFromInput) {
// return how data should be stored in model
});
}
};
});
あなたのHTMLで:
<input type="text" ng-model="date" date-format />
ディレクティブは、ngModelController
その動作を拡張できるようにする必要があります。
プランカーを作りました。もちろん、単純な日付操作が必要な場合は、ディレクティブ内でプログラムでフィルターを使用することを検討してください。これにより、既に実装されているフィルターを繰り返さなくなります。Plunkerで使っているので、使い方がわかります。