私はここで私の頭を傷つけています。私はangularJSを使用しており、parseIntの呼び出しを含む式を使用しようとしています。 。AngularJS:0 == 2ですか?
{{0 == 2}}
...プリントアウト偽予想通り)しかし
、私がしようとしているとき:
{{parseInt(0) == parseInt(2)}}
を...それは... 真をプリントアウト!
どうすれば可能ですか?
私はここで私の頭を傷つけています。私はangularJSを使用しており、parseIntの呼び出しを含む式を使用しようとしています。 。AngularJS:0 == 2ですか?
{{0 == 2}}
...プリントアウト偽予想通り)しかし
、私がしようとしているとき:
{{parseInt(0) == parseInt(2)}}
を...それは... 真をプリントアウト!
どうすれば可能ですか?
parseInt
があなたの範囲に定義されていないためです。
parseIntの意味は定義されていませんか? –
ここではparseIntを見ることができますかw3schools.com/jsref/jsref_parseint.asp? –
彼はあなたのスコープで関数が定義されていないので、 "parseInt()"を意味します。 'parseInt'はJavascript関数ですが、{{}}の中では、AngularはそれをJavaScriptとはみなしません。コントローラのスコープにマップします。したがって、 'undefined == undefined'はtrueになります。 –
あなたのHTML内角度は、式を評価するためにJavaScriptの
eval()
を使用していません。 代わりに、Angularの$parse
サービスがこれらの式を処理します。角式は、
window
,document
またはlocation
のようなグローバル変数にアクセスできません。この制限は意図的なものです。 は、グローバルな状態への偶発的なアクセスを防ぎます。これは、共通のソース の微妙なバグです。
parseInt(0)
とparseInt(2)
どちらも、あなたのHTMLで定義されていません。
ので{{undefined==undefined}}
は.Beacause parseInt
はあなたが側{{}}
でparseInt
機能にアクセスカントfunction.So Javascript
あるtrue
です。あなたがこれを行いたい場合は、
は、その後、あなたがparseInt
を使用することができ、あなたのコントローラに
$scope.parseInt = parseInt;
をparseInt
を定義
ソリューション
【こちらのparseIntは、スコープ変数ではありません]あなたのhtmlのメソッド
角速度表現で普通のJSを実行することはできませんn。式は現在のスコープと比較して評価されます。したがって、parseInt
は現在のスコープ内でundefined
です。
parseInt
を関数参照として設定すると動作します。
$scope.parseInt = parseInt;
結果が真になりますので、あなたは、両方の未定義値を比較しています。
アンギュラディレクティブ(ng-blur、ng-change、..)を使用してjavascriptメソッド(parseInt)を呼び出すことはできません。
解決方法1:
{{0*1 == 2*1}}
はわずか1(0 * 1 = 0、* 1 2 = 1)との乗算によって整数に変換するためにトリックを行います。
解決策2:
{{parseInt(0) == parseInt(2)}}
コントローラー:
// To Convert specific format
$scope.parseInt = funtion(value){
return parseInt(value,10);
}
又は
$scope.parseInt = parseInt;
参照here
答えについて詳しく説明し、それが正解である理由を説明してください。 –
このコードは質問に答えるかもしれませんが、_why_および/または_how_に関する追加のコンテキストを に追加すると、 と回答すると、その質問はその長期の 値を大幅に改善します。あなたの答えを[編集]して、説明を加えてください。 –
ありがとう、ガッツ!私を修正するために:-) –
ビューがスコープ経由でコントローラに接続されているためです。
私たちが変数、関数、またはそれの前に$ scopeを追加することによってレンダリングされたものを表示します。
例えば、我々はのparseInt、そのが定義されていない$ scope.parseIntによってレンダリングを書くとき はそうビューで$ scope.a
としてレンダリングされます。
FIX-定義$ scope.parseInt = parseIntはは、特定のビュー
に添付コントローラであなたは[MCVE]を作成できますか? – dave
https://www.destroyallsoftware.com/talks/wat;) – Stefan