【问题标题】:How can I get a Countdown Timer to work in Angular 10如何让倒数计时器在 Angular 10 中工作
【发布时间】:2020-09-22 10:54:21
【问题描述】:

我正在尝试创建一个 Angular-Nativescript 共享应用程序,该应用程序在计时器达到零时执行某些功能。 我还希望在更改结束值时重新启动/重置计时器。

在 Angular 9 中,此功能与 angular-countdown-timer 包一起使用。

但是,自从升级到 Angular 10 后,我无法通过需要一些泛型类型问题的 ModuleWithProviders

我也尝试过使用angular8-countdown-timer,它在页面加载时设置最终值但之后不起作用(即使组件中的最终值正在更改)。

我还尝试了一些较旧的软件包,例如 ngx-countdown-timer,但并不高兴,因为它们通常会违反 ModuleWithProviders 的限制。

我尝试过使用ModuleWithProviders<any>ModuleWithProviders<unknown>,正如我在类似帖子中看到的那样,但编译器只是在我面前笑了。

我们将不胜感激任何上述任何方面的帮助,甚至是联系作者的方式。

【问题讨论】:

    标签: angular timer nativescript-angular angular10 angular-compiler


    【解决方案1】:

    我不确定我是否完全理解你的问题,但我只是 updated my own angular9 project 使用了一个效率更高的计时器,我没有导入所有 rxjs。

    我在页面上使用了几个计数器并进行了几次重置。

    基本上,当我启动一个计时器时,我会生成一个新计时器,并在间隔过去时工作,然后在单击停止按钮时停止订阅。为了做你想做的事,我猜你只是从“do stuff”块中调用.unsubscribe()函数。

    我希望这可以帮助您,或者其他来这里寻找角度 8-10 的时间的人

    
    import { Subscription, timer } from 'rxjs';
    
    ...
      subscription: Subscription;
    
    
      startTimer(){
        const source = timer(1000, 2000);
        this.subscription = source.subscribe(val => {
           // do stuff you want when the interval ticks
        }
      }
    
      stopTimer(){
        this.subscription.unsubscribe();
      }
    
    

    我的灵感是this article

    【讨论】:

    • 感谢 JoSSte。我现在才重新审视这个。将尝试您的解决方案
    • 我应该补充说我想显示一个倒计时时钟,直到动作被触发,所以最好有一些涵盖所有繁重工作的东西(即 ) 但会尝试你的方法做更多的手动处理
    • 也许您可以更新您的问题并添加该信息
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 2017-11-13
    • 2019-11-28
    • 1970-01-01
    • 2012-04-19
    • 2018-10-30
    相关资源
    最近更新 更多