当前位置: 首页 > 知识库问答 >
问题:

Angular2变量“未定义”外部方法

时恩
2023-03-14

我订阅了一个方法中的一个可观察的,需要在另一个方法中取消订阅。从一个初始化函数调用子计数器()方法,其内容工作正常。

subCounter() {
  this.fml = this.playerService.counter(this.song).subscribe(data => {
    this.pos = data;
    this.time.position = Math.round(this.pos);
    this.time.dur = this.song.duration - this.time.position;
    this.time.durMinutes = Math.floor(this.time.dur / 60);
    this.time.durSeconds = ('0' + Math.ceil(this.time.dur - this.time.durMinutes * 60)).slice(-2);
    this.time.posMinutes = Math.floor(this.time.position / 60);
    this.time.posSeconds = ('0' + Math.ceil(this.time.position - this.time.posMinutes * 60)).slice(-2);
    this.time.percent = this.time.position / this.song.duration * 100;
  })
  // This works just fine
  console.log(this.fml);
}

当我调用我的touchActivate()函数时,它包含一个对存储的变量的unsubscribe函数,但是它会抛出一个错误,因为this.fml.unsubscribe未定义。控制台日志记录this.fml返回一个未定义的对象

touchActivate() {
  console.log(this.fml);
  this.fml.unsubscribe();
}

在类的顶部,我定义了一个变量:public fml:any


共有1个答案

上官联
2023-03-14

试试这个:

$('.range-slider').on("touchstart", this.touchActivate.bind(this));

或者使用箭头函数保留this

$('.range-slider').on("touchstart", () => this.touchActivate());
 类似资料:
  • 问题内容: 在jQuery的核心风格指南建议两种不同的方法来检查一个变量是否被定义。 全局变量: 局部变量: 特性: 为什么jQuery为什么对全局变量使用一种方法而对局部变量和属性使用另一种方法? 问题答案: 对于未声明的变量,将返回字符串文字,而身份检查将触发错误 “未定义foo” 。 对于局部变量(您 知道 已在某处声明),不会发生此类错误,因此进行身份检查。

  • 我只是想学习Angular 2(特别是Angular 8),就我的一生而言,我不明白为什么类变量在类函数中是“未定义”的,但如果我用ES6风格编写函数,它是可以访问的。 我尝试在构造函数中设置,但这没有意义。 一旦调用HandleClickStart,每1.5秒输出一次NaN。为什么????我本以为是1 2 3...... 通过这种方式实现handleClickStart,可以获得预期的结果: 但

  • 我试图在MySQL中创建一个过程。这是正文: 但是当我保存它时,我得到这个错误: 处理您的请求时发生了一个或多个错误: 以下查询失败:“创建定义器”=root@localhost过程getAutoFinishTimeRemaining(按_order_id INT,按_Hoursint)非确定性读取SQL数据SQL安全定义器开始声明_date_delivered datetime;声明_date_

  • This sets the value of $undefined for Smarty, default is null. Currently this is only used to set undefined variables in $global_assign to a default value. 该变量为Smarty设定没有得到定义的变量的值,默认为空.当前仅用来设定全局配置中的未定

  • 问题内容: 我知道这是一个基本问题,但是我很好奇下面的代码为什么不起作用。没有用例不会声明此变量。 我得到错误 我确定这只是我还在学习的基本GOLANG内容。 谢谢你的支持 问题答案: 块有自己的范围。在您的情况下,它们在外部不可见。 您可以在修复前声明。 文件:https://golang.org/ref/spec#Declarations_and_scope 您可能还需要阅读:Go中的声明范围

  • 我有课。我需要在超时内做一些http工作。我面临的问题是超时内的http变量一直说它是未定义的。