我试图在我的离子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;
}
}
答案 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);
}