2017-12-31 218 views
-2

私はビューテンプレートでこのようなものを試してみると、期待どおりに動作しています。角度テンプレートの数学的操作

{{20*30}}

しかしsomevalue1somevalue2の両方が構成要素から来ているとsomevalue2は、APIから来てどこ

{{somevalue1*somevalue2}}

を試してみて、それがNaNを表示して、アレイ内にあるときはいつでも。

これに対処するにはどうすればよいですか?

文字列値のためですか?

Numberをテンプレートに変換するにはどうすればよいですか?

+3

もっとコードを共有してください。具体的には、javascriptコードを使用して、データの取得方法をより正確に把握できます。さらに、これらの変数のタイプを共有します。 – Ele

答えて

1
Is it because of the String value? 

はい、あります。あなたは簡単にテンプレートのスコープ内窓スコープにアクセスすることはできませんので、私は方法になるだろう:

calculateStuff(){ 
    return Number(somevalue1) * Number(somevalue2); 
} 

、テンプレートで:

{{calculateStuff()}} 

文字列が数値を表す文字で開始されない場合は、それでもNaNが返されます。

+0

実際に私はこの3,947のような応答を得ています。5825ここでカンマ区切りです。これをカンマに変換するときはいつでも、カンマがその中に入り、NANを再び返します。それに対処する考えですか? –

+1

下記のvojtechsの回答をご覧ください。彼はすべてが正しいです。番号は国際化されています。カンマを空の文字列に置き換え、以前に提案したようにNumberメソッドを呼び出します。 – Laker

1

somevalue1somevalue2はおそらく文字列です。あなたは本当の答えを得るために、より多くのコードを共有する必要があります。

{{somevalue1}}{{somevalue2}}をテンプレートに追加するだけで、テンプレートが期待する値を受け取っていることを確認できます。

+0

私の応答は以下のようなものです:3,947.5825カンマ区切りです。これをカンマ区切りに変換するとカンマがその中に入り、NANを再び返します。それに対処する考えですか? –

+0

ああ、あなたはカンマを削除する必要があります。それに関するその他の質問があります。 – elliottregan

1

問題は、一部のロケールに従ってフォーマットされた文字列値です(あなたのケースで、それはUS localeある)

あなたはeighterことができます。

  • 作成を取得したデータに値に文字列を変換角変換パイプ
  • テンプレートでヘルパー関数/メソッドを使用する
  • 可能であれば、サーバー側でデータを調整する必要なときに生データを送信してフォーマットすることをお勧めします)

変換の処理方法はいくつかあります。これが唯一のフォーマットであれば、その番号を受け取ることができます。カンマNumber('1,234.42'.replace(',', ''))を置き換えるか、この目的のために作成されたライブラリの一部を使用してください。NumeralJS

関連する問題