2016-08-15 58 views
0

我想調用一個函數,我在我的離子2選項卡內的打字稿/ Angular 2中寫入。我對打字稿很陌生,所以不完全知道它是如何工作的。如何在離子2中調用Angular 2中內置的函數?

當我試圖調用功能,控制檯提供了一個錯誤,說我寫的隨機化()函數不是一個函數...

This is a JSFiddle file這裏我把我的代碼。 '卡'部分完美無瑕,它只涉及我的隨機功能。 HTML:

<button fab class="card-subtitle">{{randomise(100,10000) | currency :'USD' : true}}</button> 

TS:

export class randomNumber { 

    public number: number; 

    constructor (min: number, max: number){ 
     this.randomise(min, max) 
    } 
    randomise(min, max) { 
     return Math.floor(Math.random() * (max - min)) + min; 
    } 

} 
+0

的實例調用randomise方法的方法你隨機數字類不是你的頁面/組件的一部分。創建一個類的實例並調用它。因此,新的randomNumber()。randomise(0,100)將起作用 – misha130

回答

0

就像@ misha130說,你得到的錯誤,因爲randomise(...)方法是不是你正在試圖把它同一組件的一部分。

我會改變你的類一點點,像這樣:

export class RandomNumber { 

    constructor(){ } 

    public randomise(min, max): number { 
     return Math.floor(Math.random() * (max - min)) + min; 
    } 
} 

而不是調用構造函數中的randomise方法,你可以直接從一個實例就像我們要看到未來叫它。

你可以做這樣的事情在html代碼:

<button fab class="card-subtitle">{{getRandomNumber(100,10000) | currency :'USD' : true}}</button> 

然後在您的組件,包括從RandomNumber

// your page component 

// Variable to hold the instance of the randomNumber class 
randomNumberInstance: any; 
result: number; 

constructor(){ 
    // your code... 
    this.randomNumberInstance = new RandomNumber(); 
} 

public getRandomNumber(value1: number, value2: number):number { 
    this.result = this.randomNumberInstance.randomise(value1, value2); 
}