web-dev-qa-db-fra.com

Comment puis-je obtenir la valeur d'entrée dans ionic 2 dans mon composant?

je vais créer une application d'achat en utilisant ionic 2, dans les détails des produits, j'ai créé un moteur pas à pas pour augmenter et diminuer la valeur de la quantité.

Ma question : comment puis-je obtenir la valeur d'entrée dans ionic 2 dans mon composant?

6
mahmoudismail

Solution:

1 -app/pages/index.html

Dans Angular 2, vous devez utiliser ngModel dans le modèle.

<ion-header>
  <ion-navbar primary>
  </ion-navbar>
</ion-header>

<ion-content>
  <ion-item>
    <button lightgray full (click)="incrementQty()">+</button>
    <ion-item>
      <ion-input type="number" min="1" [value]="qty" [(ngModel)]="qty"></ion-input>
    </ion-item>
    <button lightgray full (click)="decrementQty()">-</button>
  </ion-item>
</ion-content>

2 -app/pages/index.ts

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

@Component({
  templateUrl: 'build/pages/titlepage/titlepage.html',
})
export class titlePage {
  qty:any;
  constructor(private nav: NavController) {
    this.qty = 1;
  }

  // increment product qty
  incrementQty() {
    console.log(this.qty+1);
    this.qty += 1;
  }

  // decrement product qty
  decrementQty() {
    if(this.qty-1 < 1 ){
      this.qty = 1
      console.log('1->'+this.qty);
    }else{
      this.qty -= 1;
      console.log('2->'+this.qty);
    }
  }
}
19
mahmoudismail

Ou comme solution alternative, vous pouvez utiliser les contrôles Form les plus appropriés conçus pour angular 2. ( en savoir plus ici )

Exemple:

Manuscrit

import {Component, Input} from '@angular/core';
import {FORM_DIRECTIVES, FormBuilder, ControlGroup, AbstractControl} from '@angular/common';
import {IONIC_DIRECTIVES} from 'ionic-angular';

@Component({
    selector: 'chat-form',
    templateUrl: '/client/components/chat-form/chat-form.html',
    directives: [IONIC_DIRECTIVES, FORM_DIRECTIVES],
    pipes: [],
    styleUrls: []
})
export class ChatFormComponent {

    chatForm:ControlGroup;

    messageInput:AbstractControl;

    constructor(private translate:TranslateService, private formBuilder:FormBuilder) {
        this.chatForm = formBuilder.group({messageInput: ['']})
        this.messageInput = this.chatForm.controls['messageInput'];
    }

    sendMessage() {
        console.log('sendMessage: ', this.messageInput.value);
    }
}

Modèle

<form [ngFormModel]="chatForm" (ngSubmit)="sendMessage()">
    <ion-input type="text" [ngFormControl]="messageInput" placeholder="{{'chat.form.placeholder' | translate }}"></ion-input>
    <button fab>
        <ion-icon name="send"></ion-icon>
    </button>
</form>
5
Matyas