我目前在Angular上有一个骰子游戏组件,掷骰子的结果保存在TypeScript数组中,然后以HTML显示。现在我被告知需要将结果保存在服务中,这样,如果我转到另一个页面并返回,仍然显示相同的结果。我已经搜索了各种方法,但我只能找到将数据从一个组件保存到另一个组件的方法。不在同一个。2如果有人知道我如何能做到这一点,请帮助!3这是我的代码。4问候,
diceResults: number[] = [];
rollTheDice() {
for (let i in this.diceGame) {
for (let a = 0; a < this.diceGame[i].numberOfDices; a++) {
this.diceResults.push((Math.random() * (this.diceGame[i].numberOfFaces - 1) + 1))
}
}
}
<button *ngFor="let dice of diceResults" class="btn btn-large bg-warning m-1">{{ dice | number: '1.0-0' }}</button>
3条答案
按热度按时间pxq42qpu1#
建立在@ CallMeAnytime好的回答上。
要声明一个服务,你需要在模块中指定它为提供者,为了简单起见,在
app.module.ts
中这样说:然后创建服务文件
yourServiceName.service.ts
:然后将变量、getter和setter声明为前面提到的@CallMeAnytimeOkay。
要使用该变量,您需要将服务注入到组件中。
5us2dqdw2#
您可以按如下方式将数据保存在服务中:
在该服务中创建getter和setter:
然后可以在组件中调用这些。
igsr9ssn3#
创建一个新的服务,该服务应监督数据保存并实现该服务中的逻辑。它应具有一个合适的对象来存储值。它应具有操作该对象的函数,最好具有一个保存要持久化的值的参数。
然后将服务注入到创建/计算骰子结果的组件中,然后以结果作为参数从服务调用操作方法,例如当您按下按钮时。
进一步阅读:Angular Data Tutorial