作为引用传递的 Angular 5/4/2 方法不在范围内

2023-12-13

运行整个示例

我有一个简单的模块,我将其命名为:

<app-button [(registerOnClickEvent)]="alertTest" ></app-button>

该模块在内部监听点击事件并将其传递到外部,以alertTest:

@Component({
  selector: 'app-button',
  template: '<button (click)="passTheClickEvent($event)"  value="test"  >Click</button>',
})
export class ButtonComponent    {
  @Input() 
  registerOnClickEvent : Function = new Function();

  passTheClickEvent(){
    this.registerOnClickEvent();
  }
}

inside alertTest, the appModel未定义:

export class AppComponent  {
  appModel : AppModel = {name : "Ron Howard"};
  alertTest(){
    console.log(this.appModel); // this.appModel us undefined
    alert("test");
  }
}

我不明白为什么?我正在发起它:

appModel : AppModel = {name : "Ron Howard"};

运行整个示例


你必须使用箭头函数来实现这一点

工作示例:https://stackblitz.com/edit/angular-hbfhxu?file=app/app.component.ts

export class AppComponent  {
   appModel : AppModel = {name : "Ron Howard"};

   // convert the function into arrow function
   alertTest = () => {
      console.log(this.appModel);
      alert(this.appModel);
   }
}

要了解有关箭头函数的更多信息,请参阅mozilla 文档链接

箭头函数表达式的语法比函数更短 表达式并且没有自己的 this、arguments、super 或 新的目标。这些函数表达式最适合非方法 函数,并且它们不能用作构造函数。

在箭头函数之前,每个新函数都定义了自己的 this 值 (在构造函数的情况下是一个新对象,在严格模式下未定义 函数调用,如果函数被调用为基对象 “对象方法”等)。事实证明,这不太理想 面向对象的编程风格。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

作为引用传递的 Angular 5/4/2 方法不在范围内 的相关文章

随机推荐

  • fragment.onCreateView 导致空指针异常

    所以我正在使用片段并尝试在它们上连接点击侦听器 public View onCreateView LayoutInflater inflater ViewGroup container Bundle savedInstanceState V
  • Django:存储图像数据库

    早些时候我使用默认数据库 sqlite3 但今天我将其更改为 postgresql 我想将图像文件保存在数据库中而不是项目目录本身中 我怎样才能做到这一点 将图像存储在数据库中并不是一个好主意media文件夹 但你可以使用二进制字段为了这
  • Unicode 中可能的组合字符序列

    有些字符未包含在 Unicode 中 即带重音的西里尔字母 但可以使用组合序列创建 据我了解 可能的组合字符序列是在布局引擎和 或使用的字体中定义的 我对吗 那么 如何得到所有可能的组合序列呢 您是正确的 尝试创建任意组合序列对于布局引擎和
  • 如何只打印文本?

    我正在尝试将一些文本发送到打印机 我只需要打印文本 在页边距处包裹并在必要时流到另一页 这是我现在正在做的一个最小的例子 FXML private void print TextArea printArea new TextArea tex
  • 向数组添加一个元素

    我正在从源读取数据作为数组 一个 我需要向数组中再添加一个元素 获得数组后 我创建一个容量为 n 1 的新数组 并将所有元素复制到新数组中 并将新元素作为数组的最后一个元素 我可以做这个 有一个更好的方法吗 尤其是 Linq 您所描述的实际
  • 如何与 dart 中的 js 交互?

    不 这与同名的其他问题不同 有一些看似相同的包可以做到这一点 但具有不同的 api http dart lang github io js interop docs js html https api dartlang org docs c
  • 输入按钮 onClick 删除最接近的 div

    呃 为什么这不起作用 我多次在我的网站上使用类似的代码 但现在不起作用 HTML div span a span div
  • 可以点击jquerydraggableparent开始拖动吗?

    我有这样的标记 div div div div 用这样的JS colorpicker selector draggable containment colorpicker background handle colorpicker sele
  • 来自 ant 的空 Junit 报告

    我正在尝试使用 ant 运行 junit 测试并生成报告 我能够成功运行测试 但报告文件为空 我究竟做错了什么 这是我的 build xml
  • 我应该使用什么来代替 iOS7 中已弃用的 GKLeaderboardViewController?

    我为 IOS 7 更新了我的应用程序 游戏中心有一些已弃用的内容 例如加载和关闭排行榜和成就 我该如何修复它们 它说 GKLeaderboardViewController 已弃用 IBAction LeaderBoardsButton i
  • DLL 的 .NET 混淆:如何保护我的代码?

    我正在探索与一家小公司建立合作伙伴关系 该公司正在寻找一种可以提高利润的算法 我有一些可以帮助他们的原型软件 我的软件核心是非常保密的 如果公司拿到了 他们肯定就不需要我了 我肯定会和他们签合同 我会有法律保护 但我仍然想在他们和我的 商业
  • Spring REST如何以不同的方式验证请求体?

    With Valid我们可以解析请求正文并使用注释对其进行验证 例如 NotEmpty Size min 5 有没有一种方法可以有多种方法来验证身体 例如 在某些端点上 我想忽略一些验证器 NotNull就我而言 我的猜测是创建一个自定义注
  • 通过IP地址限制对基于Node.js的HTTP服务器的访问

    如何在 Node js HTTP 服务器应用程序中通过 IP 地址限制访问 我正在寻找这样的东西 Deny from all Allow from 我只需要允许少数几个 IP 地址访问该网站 我怎样才能做到这一点 我不确定这种方法有多防弹
  • Delphi异步写入TListBox

    我想从多个线程 进程写入一个名为 listMessages 的 TListBox 我有两个过程来执行此操作 1 添加对象 procedure Log Msg String Color TColor begin listMessages It
  • 如何使用 Zend Framework 使用 mySQL 的 INTO OUTFILE 功能导出到 CSV

    我希望使用 Zend Framework 将大量数据导出到 CSV 文件中以供用户下载 有没有办法使用 Zend Db 的功能并使用 INTO OUTFILE 语法将文件输出为 csv 基本上我希望能够调整我的 Zend Db 模型以导出到
  • 货币格式的数据注释不起作用

    在我的 ASP NET 中MVC Core网络项目于VS2015 以下模型将数据显示为例如 15481 而不是 15 481 即使我正在使用 DisplayFormat below Models public class State Key
  • 爪哇 |运算符是做什么用的?

    这段 java 代码的输出是什么 为什么 int a 5 3 System out println a 这是一个按位运算符 是Java 教程的具体细节 输出是对数字的二进制表示形式中的位进行 或 运算的结果
  • 如何将conda环境转移到离线电脑上

    我家里有一个 conda 环境 我正在攻读博士学位 但现在我需要更多的计算能力 我必须在大学的一台计算机上传输 或安装完美的副本 我的环境 计算机没有互联网连接 我只有 SSH 我尝试将整个 anaconda3 目录和 bashrc 复制到
  • 未在数据库上显式调用 close()

    我需要知道在代码中调用 db close 的位置 我已将其添加到 onCreate 方法中 但是当我需要使用某些方法时 它说数据库未打开 然后我从 onCreate 中删除 它说 close 没有显式调用 那么我应该在哪里关闭 它可以在类的
  • 作为引用传递的 Angular 5/4/2 方法不在范围内

    运行整个示例 我有一个简单的模块 我将其命名为