子コンポーネントから親コンポーネントへのデータの受け渡し方法 Angular
2023-10-20 08:01:53
質問
search_detailというコンポーネントがあり、その中にcalendarという別のコンポーネントが入っています。
searchDetail_component.html
<li class="date">
<div class="btn-group dropdown" [class.open]="DatedropdownOpened">
<button type="button" (click)="DatedropdownOpened = !DatedropdownOpened" class="btn btn-default dropdown-toggle" data-toggle="dropdown"
aria-haspopup="true" [attr.aria-expanded]="dropdownOpened ? 'true': 'false'">
Date <span class="caret"></span>
</button>
<ul class="dropdown-menu default-dropdown">
<calendar ></calendar>
<button > Cancel </button>
<button (click)="setDate(category)"> Ok </button>
</ul>
</div>
</li>
検索結果表示コンポーネント.ts
import 'rxjs/add/observable/fromEvent';
@Component({
selector: 'searchDetail',
templateUrl: './search_detail.component.html',
moduleId: module.id
})
Calendar.component.ts
import { Component, Input} from '@angular/core';
@Component({
moduleId:module.id,
selector: 'calendar',
templateUrl: './calendar.component.html'
})
export class CalendarComponent{
public fromDate:Date = new Date();
private toDate:Date = new Date();
private events:Array<any>;
private tomorrow:Date;
private afterTomorrow:Date;
private formats:Array<string> = ['DD-MM-YYYY', 'YYYY/MM/DD', 'DD.MM.YYYY', 'shortDate'];
private format = this.formats[0];
private dateOptions:any = {
formatYear: 'YY',
startingDay: 1
};
private opened:boolean = false;
public getDate():number {
return this.fromDate.getDate() || new Date().getTime();
}
}
検索詳細ページでokボタンをクリックすると、開始日と終了日にアクセスしたいのですが、どうすればよいでしょうか。
どのように解決するのですか?
を登録します。
EventEmitter
を子コンポーネントに登録します。
@Output
:
@Output() onDatePicked = new EventEmitter<any>();
クリック時に値を出力する。
public pickDate(date: any): void {
this.onDatePicked.emit(date);
}
親コンポーネントのテンプレートでイベントをリッスンします。
<div>
<calendar (onDatePicked)="doSomething($event)"></calendar>
</div>
と親コンポーネントで
public doSomething(date: any):void {
console.log('Picked date: ', date);
}
公式のドキュメントでもしっかり説明されています。 コンポーネントとの相互作用 .
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] Node.jsのプログラムにコマンドライン引数を渡すにはどうしたらいいですか?
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] 親メソッドから子メソッドを呼び出す
-
[解決済み] PHPからJavaScriptに変数やデータを渡すにはどうしたらよいですか?
-
[解決済み] コンポーネントテンプレートで要素を選択するには?
-
[解決済み] Angularのルーティングされたコンポーネントにデータを渡すにはどうしたらいいですか?
-
[解決済み】 {this.props.children} に props を渡すには?}
-
[解決済み】親クラスから子コンポーネントのメソッドを呼び出す - Angular
-
[解決済み] <Enter>でjQuery UIダイアログを送信する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JSのDateからDay名
-
[解決済み] javascriptで2つの数値を連結する方法は?
-
[解決済み] JavaScriptで:hoverのCSSプロパティを変更する
-
[解決済み] JSXとLoadshを使用して、ある要素をn回繰り返す方法
-
[解決済み] JavaScriptで文字列を数値に変換する最速の方法は何ですか?
-
[解決済み] サブドメインにまたがってlocalStorageを使用する
-
[解決済み] ECMAScriptとは?
-
[解決済み] モデルフェッチ時に1をtrueに、0をfalseに変換する方法
-
[解決済み] $.ajax実行中にローディングイメージを表示する
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。