如何在离子2中调用Angular 2中内置的函数?

时间:2016-08-15 12:14:57

标签: angularjs function ionic-framework ionic2 typescript2.0

我试图在我的离子2选项卡中调用我在typescript / Angular 2中编写的函数。我对打字稿很新,所以不知道它是如何工作的。

当我试图调用该函数时,控制台发出一个错误,说我写的randomise()函数不是函数...

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;
    }

}

1 个答案:

答案 0 :(得分: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>

然后在您的组件中,包含一个从randomise类的实例调用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);
}