2017-11-09 2 views
2

_approvedOrDeniedプロパティはboolean型として宣言され、私たちのコンポーネントに[(ngModel)]バインディングは常に文字列ですか?

<div class="radio"> 
    <label> 
     <input type="radio" name="approvedeny" value="true" [(ngModel)]=_approvedOrDenied> 
     Approve 
    </label> 
    </div> 

、角度のアプリケーション内のRadioButton HTML要素を考えてみましょう。

@Component({ 
export class ApprovalsComponent implements OnInit { 
    _approvedOrDenied: boolean; 

ただし、クライアントサイドのコードをステップ実行するときは、これは文字列に設定されています。私のコードにこれを行うキャストはありませんが、角度が自動的にそれをやっているようです。

enter image description here

すべてのデータバインドされたプロパティは角に文字列として返されていますか?もしそうなら、タイプコードとして_approvedOrDenied: booleanと宣言するのは何ですか?

+0

私はそれが 'value =" true "' mの代わりに '' [value] = "true" '' –

+0

の公式ドキュメントでモデルが 'any'型であると言います。https://angular.io/api/forms/NgModel –

答えて

6

ありませんが動作するはずです。そして、ところで、引用符なしのタグを見るのは初めてです!

あなたはこの

<app-my-component firstVariable="hello world"></app-my-component> 

のような入力を持つ成分を返すが、それは文字列です作ります。この場合は変数を与えることさえできません。入力には変数の名前が値として入ります。

しかし、あなたは

<app-my-component [firstVariable]="hello world"></app-my-component> 

を行う場合、それは動作しません。ここでは、変数を与えるはずです。 、それを動作させる今、この

<app-my-component [firstVariable]="'Hello world'"></app-my-component> 

を使用するには、「匿名変数」のようなものを与えている:あなたは引用符を使用し、その角度は、それは文字列です理解しています。

あなたの場合、ラジオボタンを使用します。ラジオボタンはラジオボタングループの一部であり、それぞれにの文字列値があります。だから真実を書いても、それは真実ではありません!それをブール値にしたい場合は、

[value]="true" 

私は助けてください!

+0

ありがとう、はいこれは私のために働いた。私は再び読んで、あなたが言っていることを消化しようとします。 「引用符のないタグを初めて見たのは何ですか?」とはどういう意味ですか?あなたはこの行を意味しますか? '[(ngModel)] = _ approvedOrDenied'(「_approvedOrDenied」とは対照的に) –

+0

はい、それは私が意味したことです、私は引用符を使用したことはありませんので、この方法でうまくいくのを嬉しく思います!私は今から2回のキーストロークを保存します:p – trichetriche

+0

注意:*動作するようです。私は最初から引用していましたが、ここでデバッグの過程で、私はそれらを削除しました。これは私が結果として他の何かを壊さなかったと言っているわけではありません:)しかし、コードはコンパイルして実行されます... –

0

は、HTMLからvalue="true"を削除し、それは常に文字列ではありません

+0

だから私はこれを行い、ラジオボタンが正しく動作しません。私は承認ボタンをクリックすることはできません、それは拒否に固執しています。 –

+0

申し訳ありませんが動作しませんでした:( – Venomy

+0

np芽、私を助けてくれてありがとう:) –

関連する問題