2017-09-27 153 views
0

未定義的變量我有兩個關於離子3.離子3 - 在Ionic3

  1. 在我ionic3頁的問題,我宣佈一個名爲「測試」 whict不能在actionOnClick函數訪問變量。有人知道嗎?我應該怎麼做才能在FUNCTION_TEST函數中'可測試'任何可訪問的東西?

  2. 有沒有辦法使HomePage和FUNCTION_TEST之間的變量交換成爲可能?

波紋管是我的ionic3代碼。

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

@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html' 
}) 
export class HomePage { 
    @ViewChild(Content) content:Content; 
    test:string="text 1"; 

    constructor(public navCtrl: NavController) { 

    } 

    ionViewDidEnter(){ 
    this.FUNCTION_TEST(); 
    } 

    FUNCTION_TEST(){ 
    var x=1; 

    function actionOnClick(){ 
     alert("text="+this.test); 
    } 

    } 
} 

是否有可能我的問題與JavaScript而不是與離子?

非常感謝您的幫助!

+0

可能重複https://stackoverflow.com/questions/22939130/when-should-i-use-arrow-functions-in-ecmascript-6 –

回答

1

關於你的第一個問題,你試圖訪問一個局部環境(actionOnClick)內的全局變量。要解決這個你應該讓你的函數類似這樣的,而是採取記住它不會入店從外部(HTML頁面爲例):

FUNCTION_TEST(){ 
    var x=1; 

    let actionOnClick =() => { 
     alert("text="+this.test); 
    } 

    } 

這將讓你從那裏存取權限this.test。


關於你提到的第二個問題,我不明白,如果你想從你的網頁訪問actionOnClick(),您需要將其聲明爲這樣的類的其他功能:

FUNCTION_TEST(){ 
    var x=1; 

    } 

actionOnClick(){ 
     alert("text="+this.test); 
    } 

然後調用它像這樣的例子:

<button ion-button block (click)="actionOnClick()">Click Me</button> 

希望這有助於你。

+0

非常感謝。你的建議奏效了。 – Eventful