2017-02-07 2 views
0

Ich versuche, Werte von einem Eingabeaufforderungswarnungseingabefeld zu erhalten und den Eingabewert zu einer anderen Funktion zu senden, konnte ich Eingabeaufforderung öffnen, und auf Knopf klicken konnte Werte in Eingabefeld beim Klicken importieren Button „Login“ kann ich es auf meiner Konsole anzeigen,Setze Zeichenkette als globale Variable

ich brauche eine globale Variable zu deklarieren und den Zugriff darauf, wann immer ich brauche es innerhalb dieser Seite nutzen zu können

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



@Component({ 
    selector: 'page-login', 
    templateUrl: 'login.html' 
}) 

export class LoginPage { 

    FileName: Array<Object>; 

    constructor(public navCtrl: NavController, 
       public alertCtrl: AlertController, 
       public navParams: NavParams, 
       ) { } 

presentPrompt() { 
     let alert = this.alertCtrl.create({ 
      title: 'Login', 
       inputs: [ 
        { 
         name: 'FileName', 
         placeholder: 'Rename Your Audio File' 
        } 
       ], 
      buttons: [ 
       { 
        text: 'Cancel', 
        role: 'cancel', 
        handler: data => { 
         console.log('Cancel clicked'); 
        } 
       }, 
       { 
        text: 'Login', 
        handler: data => { 
         console.log("login clicked"); 
         this.FileName = data.FileName + '.mp3'; 

        } 
       } 
      ] 
     }); 
      alert.present(); 
    } 

    getValue(){ 
     console.log("trying to get value", this.FileName);  
     // value from prompt must be send to the above console 
    } 

Was ich brauche, ist der „Filename "Wert innerhalb des Eingabefeldes sollte angezeigt werden, wenn" getvalue "angeklickt wird. könnte mir jemand helfen

Antwort

0

Immer wenn Sie einige globale verfügbare Sachen benötigen, müssen Sie es in eine Service setzen.

In Ihrem Fall erstellen Sie einen Dienst, der eine einfache String-Eigenschaft enthält, die get und gesetzt werden kann. Dann injiziere diesen Dienst in deine Komponente. Die Lebensdauer des Dienstes dauert während der gesamten Zeit, in der Ihre eckige App läuft, und der Wert kann von jeder Komponente (oder einem anderen Dienst) gelesen und geschrieben werden, in die sie injiziert wird.

+0

Ich weiß nicht, wie man einen Dienst schreibt, ich bin nicht sehr vertraut mit angular2 –