問題タブ [angular2-components]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
8523 参照

angular - Angular 2 兄弟コンポーネント間の通信

私はこの答えに従おうとしましたが、兄弟コンポーネント間のAngular 2イベントキャッチがあまりにも混乱しています

子コンポーネント 2で何かがクリックされたときに、子コンポーネント 1のメソッドを呼び出したい

子コンポーネント 2 は、trackClick というイベントを発行します。

親コンポーネント:

子コンポーネント 1 (オーディオ プレーヤー)

子コンポーネント 2 (オーディオ アルバム)

0 投票する
1 に答える
2710 参照

angular - Angular2 ラベルの for 属性はそれを入力にリンクしません

私はAngular2 RC5で作業しています。ラベルと入力をカプセル化するコンポーネントがあります

次のように任意のテンプレートから呼び出されます<my-input id="inputcontrol">input</my-input> 問題は、ラベルをクリックすると入力がフォーカスされないことですが、ブラウザーで開発ツールを確認すると、 for 属性と id 属性の両方が正しく設定されています

ここに問題を示すプランカーがあります: https://plnkr.co/edit/WGhg597MzJ5df4f0Hm5n

0 投票する
0 に答える
616 参照

angular - Angular 2 でコンポーネント テンプレートを動的にネスト/埋め込む方法

Plunkr やろうとしていることへのリンク -> https://plnkr.co/edit/mC8jGYROlpqFpnjTCQKr?p=preview

私の目標は、ツール メニューからステージの左側に何かをドラッグできるようにすることです。「ドロップ」すると、選択したアイテムがステージ内にネストされます。

ドキュメントとブログを検索しました。「CreateEmbeddedView」が私が使用することになっているもののように見えることがわかりました。

Angular2のドキュメントによると、私が探しているのは次のとおりです。

createEmbeddedView(templateRef: TemplateRef, context?: C, index?: number) : EmbeddedViewRef

ただし、これの実用的な例を見つけることができないようです。私が使用することに頼ったのは、「src/designer-droppable.directive.ts」の次のとおりです。

ただし、これはコンポーネントを埋め込むのではなく、兄弟として「viewContainerRef」に追加します。つまり、plnkr で何かをステージにドラッグすると、埋め込まれずにステージの右側に追加されます。

CreateEmbeddedView を使用しようとしましたが、TemplateRef を動的に定義する方法がわかりません。

私は Dynamic Component Loader に関する多くの古いドキュメントを見てきましたが、それはその後ファクトリを支持して廃止されました。私が欠けているものへの支援は素晴らしいでしょう。ライブの例は素晴らしいでしょう。

ありがとうございました。

0 投票する
2 に答える
4133 参照

angular - ルートが重複したフォームを表示する

angular2 でプロジェクトを開始しましたが、何らかの理由でルートにコンポーネントが 2 回表示されます。関連するコード スニペットを次に示します。

app.routing.ts

app.module.ts

app.component.htmlが含まれています<app-auth></app-auth>

auth.component.ts

auth.component.html

ここで何が欠けていますか?

0 投票する
0 に答える
264 参照

javascript - JavaScriptでAngularjs 2に@inputプロパティを設定するにはどうすればよいですか(タイプスクリプトなし)

Angularjs 2チュートリアルには、TypeScript でコンポーネントの入力変数を設定する方法が説明されています

javascipt のドキュメントがまだ利用できないため、javascript を介してコンポーネント変数を設定することに行き詰まっています。ヒーロー変数を入力として受け取るコンポーネントのコードを次に示します。どうすれば設定できますか?

コンポーネントを使用する<hero-detail [hero]="selectedHero"></hero-detail> プロパティheroが設定されていないため、ブラウザで次のエラーが発生します Can't bind to 'hero' since it isn't a known property of 'hero-detail'

0 投票する
1 に答える
240 参照

html - ngOnInit は CSS トランジションを無視します

CSS トランジション プロパティを使用して、3 秒間隔で幅を 0 ~ 100 に増やしたい div があります。Chrome 開発者ツールでこのプロパティを変更すると、3 秒間で 0 から 100 まで大きくなります。ただし、コンポーネントの からスタイルを適用すると、ngOnInit()すぐに適用されます。私は何か間違ったことをしていますか?

編集:私は自分で問題を解決しましたが、それが機能する理由も説明する答えは素晴らしいでしょう.

Component.ts:

Component.html:

0 投票する
3 に答える
1597 参照

angular - Angular 2 コンポーネントの .html パス

コンポーネントでhtmlの相対パスを使用しようとしていますが、jsファイルをdistフォルダーにマッピングしています..私のコンポーネントコードは

app/app.component.ts

html ファイルは同じディレクトリにあります。つまり、app/app.component.html です。

次のエラーが表示されます

私が得るエラー

angularが「dist/app/app.component.html」でapp.component.htmlファイルを見つけていることは完全に明らかですが、そこにはありません。これを修正するにはどうすればよいですか??

私のsystemjs.config.jsファイルは

そして私の tsconfig.json は

0 投票する
2 に答える
880 参照

angular - Angular2 - フォーム内のカスタム ディレクティブの誤動作

<input ...>カスタム ディレクティブが角度のあるフォーム内にある場合、テンプレートにタグを含むカスタム ディレクティブに問題があります。

フォーム内で入力を宣言する場合、入力のフィールドを編集すると、フォームのプロパティ (pristine、touched、valid など) が期待どおりに変更されます。

たとえば、フォーム内でカスタム ディレクティブを宣言し、その<ac2-string-input ...></ac2-string-input>テンプレートに入力が含まれている場合、この入力のフィールドを編集しても、フォームのプロパティは変更されません。

何故ですか?それはバグですか?これに対する回避策はありますか?

以下に例を示します。

app/form.component.tsにフォーム コンポーネントを含めることができます。

テンプレート付きtemplates/form/form.html

また、ac2-string-inputディレクティブはapp/form/input.component.tsで定義されています。

テンプレート付きtemplates/form/input.html

フォームをロードすると、2 つのテキスト フィールドがあり、フォームは「元の状態」になります。

形

「attr2」フィールドを編集すると、フィールドがフォームにバインドされていないかのように、フォームは元のままになります。

フィールド編集済み、手付かずのフォーム

「attr1」フィールドを編集すると、期待どおりにフォームがきれいになりません。