2017-10-05 20 views
2

から値を受け入れません。 。彼らは、我々はまた、テキスト、すなわちテキストを()の追加の他の反復を使用しました(テキストエリアのテキストが更新取得されていない、しかし、角度2 TEXTAREAは、私は、入力テキストエリアのフィールドを持つ角度2アプリを持っているjQueryの

$("#projectDescription").val("Test value"); 

を使用してフォームを送信するテキストエリアに値を挿入しようとしている、innerHTMLプロパティ= )。 'text'のような他の入力タイプでもうまく動作しますが、更新されないのはtextareaだけです。これは既知の問題ですか?そのための解決策はありますか?

EDIT:サイトのローカルコンソールで値を更新することさえできないことにも注意してください。しかし、Angular 2の特定の属性(つまりng-object ng-class)を削除すると、値を更新できるようになります。そのため、AngularフレームワークとJQueryの間のやりとりが行われています。

+0

角度属性を削除して修正することはできますか? – user3334871

+0

'サイトのローカルコンソールで値を更新することさえできないことにも気付くべきです.'私はそれを試してみました。あなたはそれが動作しない例を提供できますか? – yurzui

答えて

0

Angularを使用しているときはJQueryを使用しないでください。 JQueryを使用する必要があるユースケースがいくつかありますが、そのような状況はまれに起こります。代わりに、その(#projectDescription)のようなhtmlタグのローカル要素の参照を置く:

<textarea #projectDescription id="projectDescription" required [(ngModel)]="projectDescription" [formControl]="createNewForm.controls['projectDescription']" style="margin-bottom:-2%;width:50%;"></textarea> 

そして、あなたのTSで、そのよう@ViewChildを使用してElementRefを得る:

@ViewChild('projectDescription') projectDescription: ElementRef; 

は必ずViewChildをインポートしてくださいElementRefから@angular/coreまでです。

そして使用してテキストエリアの値を操作:またconsole.log(this.projectDescription)ネイティブ要素にあなたが操作できる他、まさに見ることができ

this.projectDescription.nativeElement.value = "Whatever you want the value to be"; 

を。

+0

こんにちは!ご回答有難うございます!残念ながら、テストフレームワークはAngularアプリの外にあります。私のアプリにはJQueryコードがありません.Selenium webdriverを使ってサブミッションをテストしていますので、テストコードはJQueryを使用してアプリケーションフローを駆動し、内部のAngularコードにはアクセスしません。私は具体的にどのようにJQueryのテストフレームワークを組み込むためのソリューションを探しています:) – user3334871

+0

私は参照してください。あなたの質問を読んで、私がやったようにそれについて考える人のために、私は答えを残します。しかし、あなたの質問はアプリのAngular部分と実際には関係ないようですが、Angularと組み合わせて別の外部ライブラリを使用する方法があるため、少し質問を言い換えることをお勧めします。とにかく私はとにかく伝えることができます。 –

+0

申し訳ありません私がAngularを言及する理由は、私の質問のJQueryがテキストエリアに値を挿入することを知っているということです。これは特にAngular 2アプリのためにテキストエリア内のテキストを更新しません。 – user3334871

関連する問題