2017-05-04 2 views
0

私は、同じフォーム上のユーザープロファイルの選択によって決定されたタイムゾーンオフセットを使用して時間入力フィールドを表示する必要があります。ng-model-optionsプロパティを動的に変更する

私はこのようなNG-モデルのオプションで使用できるように、私はリンク機能にスコープにgetTzOffset FNを定義しています:

<input ng-model="myTimeObject" type="time" ... ng-model-options="{timezone: getTzOffset()}" ... >

しかし、それは動作しません。 getTzOffsetが呼び出されることはありません。

私はタイムゾーンが必要な入力フィールドを持つ日付ピッカーを使用しています。私は変更された日付オブジェクトまたはそれの文字列表現を必要としません、私はdatePickerがUTC時間に日付オブジェクトを正しく翻訳する方法を知ることができるように、タイムゾーンオフセットが必要です。私はインターフェイスを介して別のユーザーが選択されたときに変更するには、そのタイムゾーンが必要です。

ng-model-optionsプロパティを動的に変更する方法はありますか?

+0

すでにスコープ変数ではなく、機能を設定しようとしたことがありますか?そこに何か変わる? –

+0

ええ、それを試してみました。リンク関数の先頭にオフセット文字列を含むスコープvarを設定します。全く動作しません。ブラウザの設定がデフォルトになります。それはテンプレート内のハードコードされた文字列でなければなりません。 ng-model-optionsは真の角度表現ではないように見えます(ドキュメントとは異なります)。 – Faust

+0

ターゲットコードを再コンパイルしてdomに再挿入するように辞任しました。私はこれが働いているが、私が欲しかった単純な解決策ではありません。 – Faust

答えて

0

角度フィルタオプション:タイムゾーンを使用できます。

Sample Plunker

考え方は、日付フィルタに3番目のパラメータを使用し、変数を使用して変更可能にすることです。あなたはまた、同様に、コード内の値を生成し、それを格納する$フィルターを使用することができ

{{ inputTime | date: "HH:mm:ss": tzInput }} 

$scope.inputTime = $filter('date')($scope.inputTime , "HH:mm:ss", $scope.tzInput); 
+0

私のモデルは文字列ではなくdatetimeオブジェクトです。わかりやすくするため、少しhtmlを追加しました。 – Faust

+0

角度の日付フィルタはDateオブジェクトでも機能します... – dev8080

+0

しかし、文字列を返します。私はタイムゾーンを必要とする入力フィールドとdatepickerを使用しています。私は変更された日付オブジェクトまたはそれの文字列表現を必要としません、私はdatePickerが日付オブジェクトを操作する方法を知ることができるように、タイムゾーンが必要です。 (私の質問を明確にする) – Faust

関連する問題