2013-12-19 13 views
14

この質問のタイトルは、正確な問題に焦点を絞ったものに変更されています。それは私が問題を認識していることについて来てどのようにフォローするコメントストリームはAngularJSは{{ますisNaN()}}なぜ{{isNan(x)}}はangularJSで動作しませんか?

を処理していないようだということで、私は私のHTMLに次いる参照してください。

xx {{ option.selectedSubject }} yy {{ (option.selectedSubject == null) }} zz 

と私も試してみました:

xx {{ option.selectedSubject }} yy {{ option.selectedSubject == null }} z 

と:

xx {{ option.selectedSubject }} yy {{ option.selectedSubject === null }} zz 

誰かが私が得る理由を私に説明助けることができます私は私のページ表示時には、上記のそれぞれについて、以下:

aa {{ option.selectedSubject === "null" }} bb {{ option.selectedSubject == "null" }} cc 

、それはこの与える::

xx null yy false zz 

アップデートを1は、私は次のことを試してみました

aa false bb false cc 

アップデート2これが役立つかどうかはわかりませんが、option.selectedSubjectの値を入力するのはここです。この場合、ローカルストレージには何もありません:

$scope.option.selectedSubject = parseInt(localStorage.get('selectedSubject')); 

私はそれがNaNです$ scope.option.selectedSubjectの値をチェックすると

+0

あなたは何を見たいですか? –

+1

xx null yy true zz –

+1

'option.selectedSubject'を' null'の代わりに 'null'に設定してしまうことはありますか?チェックアウト:http://jsfiddle.net/y3xzB/1/ – KayakDave

答えて

18

ここでの問題はisNaNではありません。問題は、存在しない$ scope変数で関数を呼び出すことです。

補間されたすべてのテキスト( '{{text}}')は、$ scope変数に関連付けられ、その$ scope変数に対して評価されます。

わかりやすさを実現するため、$ scope.propertyが存在しない場合は、その場で作成することができます。 ngModel = 'someProperty'または{{aPropertyName}}を使用するたびに、存在しない場合は、対応する$ scope.somePropertyまたは$ scope.aPropertyNameが自動的に作成されます。このショートカットはプリミティブでのみ機能します。

関数呼び出しは常に$ scopeに対して評価され、決して作成されません。これが$スコープと言う必要がある理由です。isNaN = isNaN、あなたの以前のコメントで見つけたように。

どの機能でも試してみてください。 isArray、isNumberなど。$ scope.functionName = functionNameをコントローラのどこかに置かないと動作しません。

編集:あなたは本当に補間でますisNaNテスト権利をしたい場合も、あなたはjavascriptのの型システムを利用して

{{ property != property }} 

を使用しかし、これは悪い形であることができます...

http://plnkr.co/edit/wfLqzk8QxScsJPF5qY12?p=preview

3

編集:は私が持つことができた元の質問angularJS内の{{}}内のテスト?および$scope.option.selectedSubjectは、nullであり、NaNではないことを意味した。著者は完全な別のものに変更するのではなく、別の質問を開くべきです。


元の質問への回答:あなたはあなたのバインディングの内側に式を置くことができます

、したがって、あなたは{{option.selectedSubject == nullを}}テストすることができます。評価の結果が期待どおりでない場合は、スコープを確認してください。

+0

私はさらに何を確認するのか分かりません。これはオプションです:{"selectedSubject":null、 "....."など –

関連する問題