2016-11-30 9 views

答えて

4

TSに

export class Page1{ 
    public toggled: boolean = false; 

    constructor() { 
     this.toggled = false; 
    } 

    public toggle(): void { 
     this.toggled = this.toggled ? false : true; 
    } 
} 

HTML

<div> 
    <ion-icon *ngIf="!toggled" (click)="toggle()" name="search"></ion-icon> 
    <ion-searchbar 
     *ngIf="toggled" 
     [(ngModel)]="someValue" 
     (ionInput)="searchThis($event)" 
     (ionCancel)="cancelSearch($event)" 
     (ionClear) = "cancelSearch($event)" 
     [showCancelButton]="true"> 
    </ion-searchbar> 
</div> 

cancelSearch()あなたがもう一度アイコンを表示するようにthis.toggle()を呼び出すことができます。

+0

これはうまくいきましたが、見出しが検索バーでコロイドになっているので、小さなバグがあります。 MyOrder <イオンアイコン名= "メニュー">私たちはあなたのコード –

+0

<終了イオンボタン> <ボタンイオンボタンアイコン左* ngIf = "!切り替える"(クリック)= "toggleSearchは()"> を<イオンアイコン名= "検索">< /イオンボタン> <イオン検索バー* ngIf = "トグル" [(ngMod EL)] = "のSearchTerms"(ionInput)= "toggleSearch($イベント)"(ionCancel)= "toggleSearch($イベント)" [showCancelButton] = "真"> ' – Ivaro18

+1

HTML ' <イオンナビゲーションバーの色= "オレンジ">を必要とすること <ボタンイオンボタンmenuToggle>をデバッグする –

2

@イヴァロ18の答えは完璧だと思います。

私は彼の反応に従って設定した私の例を補足したいと思います。

home.ts

import { Component } from '@angular/core'; 
import { NavController, NavParams } from 'ionic-angular'; 

@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html' 
}) 
export class HomePage { 

    toggled: boolean; 
    searchTerm: String = ''; 
    items: string[]; 

    constructor(public navCtrl: NavController, public navParams: NavParams) { 
     this.toggled = false; 
     this.initializeItems();   
    } 

    ionViewDidLoad() { 
     console.log('ionViewDidLoad HomePage'); 
    } 

    toggleSearch() { 
     this.toggled = this.toggled ? false : true; 
    } 

    initializeItems() { 
     this.items = ['Amsterdam','Bogota','Mumbai','San José','Salvador']; 
    }  

    triggerInput(ev: any) { 
     // Reset items back to all of the items 
     this.initializeItems(); 
     // set val to the value of the searchbar 
     let val = ev.target.value; 
     // if the value is an empty string don't filter the items 
     if (val && val.trim() != '') { 
      this.items = this.items.filter((item) => { 
      return (item.toLowerCase().indexOf(val.toLowerCase()) > -1); 
      }) 
     } 
    } 
} 

home.html

<ion-header> 
    <ion-navbar color="primary"> 
    <button *ngIf="!toggled" ion-button icon-only menuToggle><ion-icon name="menu"></ion-icon></button> 
    <!-- Title --> 
    <ion-title *ngIf="!toggled">In&iacute;cio</ion-title> 
    <!-- Search Bar --> 
    <ion-searchbar *ngIf="toggled" [(ngModel)]="searchTerm" [showCancelButton]="true" (ionCancel)="toggleSearch()" (ionInput)="triggerInput($event)"></ion-searchbar> 
    <!-- Search Icon -->  
    <ion-buttons end *ngIf="!toggled"> 
     <button ion-button icon-only (click)="toggleSearch()"><ion-icon name="search"></ion-icon></button> 
    </ion-buttons> 
    </ion-navbar> 
</ion-header> 

<ion-content padding> 

<ion-list> 
    <ion-item *ngFor="let item of items"> 
    {{ item }} 
    </ion-item> 
</ion-list> 
</ion-content> 

詳細情報:詳細については 、API docsをチェックしてください。

+0

検索バーにフォーカスを追加し、ユーザーが検索アイコンを押すとキーボードを開く方法を教えてください。 –

関連する問題