2013-08-11 8 views
8

私はAnguarJSを初めて使用しています.ng-showについてわからないことがあります。FまたはNが入力されたときにng-showが機能しない理由

私は、次のコードをしている:ユーザーが入力フィールドに入力し始めるとhttp://codepen.io/mars16/full/atGLp

、私はコロンが入力されているものに続いて表示されることを期待しています。私は、最初にfまたはnを入力すると、より多くの文字が入力されるまでコロン文字が表示されないことに気付きました。これはなぜですか?

答えて

2

基準が正しくないように見える場合、ng-showbooleanタイプにする必要があります。 falsyする '0' 問題は、角度が '偽'、値 'F' と考えることである。この

<span ng-show="variable.one.length > 0">:</span> 
7

を試してみて、 'n' を、そして 'いいえ'!この動作にはan open bugがあります。 szaのアプローチで修正することもできますが、これを行うこともできます。

<span ng-show="!!variable.one">:</span> 
+1

さらに多くの機能がバグよりもあります。このような理由から、私はいつも条件の厳しいチェックを使うことを勧めます。 – finishingmove

+0

はい、それはジャバスクリプトがネイティブに動作する方法を理解しているだけです。 if文にng-showの内容をラップすると、同じことになります。だからあなたはszaのようにチェックする必要があります。 – Noogen

+1

これは、私が普及しているフレームワークで見た中で最も愚かなことです。まず第一に、「f」、「no」、「n」はビジネスが虚偽ではありません。また、文字列があります。 JavaScriptはこのようにネイティブでは動作しません。動作しません。ネイティブJavaScriptでは、コンテンツを含む文字列は真実の値です。実際に何が起こるかは、angleが式の値が文字列であることを検出した場合、それを再度エコーします。これは役に立たず、その言葉よりも多くの問題を引き起こします。単純に「クール」なものはフレームワーク内に配置されず、Angularはそれらでいっぱいです。 –

関連する問題