私はAngular2を使用してプロジェクトを進めています。 しかし一方で、私はかなり簡単な仕事がイライラしています。Angular2は、子イベントの実行時に親コンポーネントにクラスを追加します。
さて、私は何をしようとしていることは非常に単純です:私のアプリで
私はヘッダコンポーネント(すべてのアプリを通じて再利用可能)と検索バーコンポーネントを持っています。
ヘッダーコンポーネントは以下のようになります。
import {Component, Input} from '@angular/core';
import {IONIC_DIRECTIVES} from 'ionic-angular';
import {SearchBar} from './../../component/search/search.component';
@Component({
selector : 'med-header',
templateUrl : 'build/component/header/header.component.html',
directives : [IONIC_DIRECTIVES, SearchBar]
})
export class Header {
@Input()
showLogo : number;
/**
* constructor
*/
constructor(){
}
};
テンプレート:
<ion-header>
<ion-navbar>
<ion-title>
<img *ngIf="showLogo" src="build/assets/images/logo.png" id="main-logo" />
</ion-title>
<div id="search-box"><med-search></med-search></div>
</ion-navbar>
</ion-header>
と検索バーコンポーネント:
import {Component} from '@angular/core';
import {IONIC_DIRECTIVES} from 'ionic-angular';
import {NavController} from 'ionic-angular';
@Component({
selector : 'med-search',
templateUrl : 'build/component/search/search.component.html',
directives : [IONIC_DIRECTIVES]
})
export class SearchBar {
private focused : boolean;
private keyword : any;
/**
* constructor
*/
constructor(private navCtrl : NavController){
}
animateComponent(){
this.focused = true;
}
};
そして、検索バーのテンプレート:
<ion-searchbar (ionInput)="getItems($event)" [(ngModel)]="keyword" [ngClass]="{'focused' : focused}" (ionFocus)="animateComponent()"></ion-searchbar>
私はこの単純なタスクを達成しようとしています
:それはjQueryのであれば、私は、まあ、(例えば、それは幅などだ増加)、ユーザーは検索バーに焦点を当てて、検索バーのコンテナをアニメーション
をかなり簡単にこの作業を達成するでしょう。 angual2では少し複雑に思えます。
私はを使用して、多分考えた:私は私の目標を達成できるホストセレクタを、私は、検索バーがフォーカスされているかどうかを知ることができないだということが分かりました。 私はEventEmitterについても考えましたが、残酷なように聞こえて、期待どおりに動作しませんでした。 クラスを親に適用し、その子コンポーネントをデパンドするクラスはありますか?
誰でもその方法を知っていますか?
ありがとうございました。
これはCSS3トランジションでは完全にできませんでしたか? – pixelbits
@pixelbits私はうまくいった。しかし、私は特定の要素の親を参照する作業技法を知らない。したがって、私は子供の入力が集中しているときに親を変更することができません。 – MorKadosh