两个自定义(角度)元素之间的通信

2024-03-11

两个自定义(角度)元素之间的通信

假设有两个自定义元素。

- login-button `<login-button id="loginbutton"></login-button>;`
- and status-login `<status-login></status-login>`

当按下登录按钮时元素login-button将发出输出事件loginbuttonpressed。 Angular 元素会将此输出事件转换为自定义事件。

然后在状态登录中您可以执行以下操作:

constructor( @Inject(DOCUMENT) document) {
    document.getElementById('loginbutton').addEventListener('loginbuttonpressed', this.loginIsPressed);
}

所以当自定义事件被调度时它会监听,这一切都很好。

问题:是否有另一种正确的方法可以在自定义元素与 Angular 元素之间进行通信?


使用 Angular EventEmitter,在一个组件中发出并通过一些公共服务在另一个组件中订阅。每当调用 loginBtnClick() 时,都会在状态组件中触发事件。通过这种方式,即使它们不存在父子关系,您也可以将数据从一个组件传递到另一个组件

import { EventEmitter } from '@angular/core';
// service
@Injectable()
export class CommonService(){
loginClicked: EventEmitter<String> = new EventEmitter<String>();
}

export class loginBtn(){
   constructor(private commonService: CommonService);

   loginBtnClick(){
      this.commonService.loginClicked.emit({data: "any data"});
   }
}

export class status(){
   constructor(private commonService: CommonService);

   ngOnInit(){
       this.commonService.loginClicked.subscribe((data) => {
           console.log(data) // {data: "any data"}
        })
   }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

两个自定义(角度)元素之间的通信 的相关文章

  • 如何在 Angular 2 中添加表单验证模式?

    我有一个简单的表单 需要验证输入的开头和结尾是否不是空格 在 HTML5 中 我将这样做
  • 插值将应用于所有 ngfor 元素的范围文本内容

    我正在检索移动的元素顶部和左侧值并将其显示在元素内 问题是当前移动元素的顶部 左侧值修改了所有元素的范围文本顶部 左侧 注意 它修改了我不想要的所有元素的跨度文本 顶部 左侧值 每个元素的顶部 左侧位置都是正确的 不会受到影响 html d
  • Angular 2.0.0-rc3:与 routerLinkActive 匹配的部分路由

    我在用着routerLinkActive在我的主要路由中 a Bob a 当网址为 user the active类将被添加到a标签 但是在主路由下 我还有一些辅助路由 所以 当网址为 user aa 活动将被删除 我希望当 URL 是 u
  • Angular2 rc5 和 Electron 错误 - 无法使用解析组件

    我正在学习如何将 Angular2 与 Electron 一起使用 目前我正在使用最新的 Angular rc5 和最新版本的 Electron 我决定使用官方的 Angular 教程 英雄之旅 在我开始路由之前 我没有遇到什么大问题 我必
  • subject.next 不在 ngOnInit 中触发

    有谁知道为什么这段代码 从主题初始化一个值 不起作用 是否存在错误或设计使然 我究竟做错了什么 ts import Component OnInit from angular core import Subject from rxjs Co
  • Angular routerLink没有导航到相应的组件

    我在 angular2 应用程序中的路由运行良好 但我将根据以下内容制作一些routeLinkthis https angular io docs ts latest guide router html 这是我的路由 const route
  • Azure Pipelines 中的 NG 构建失败,出现 NPM 错误 134

    大约 50 的托管构建失败 并出现 npm 错误 134 我正在使用托管 vs2017 构建具有相同构建定义的相同提交 我正在使用 Angular CLI 构建 Angular 应用程序 npm 任务调用 run build 它在我的 pa
  • vb.net 从数组中删除第一个元素

    一种答案是创建一个短一个元素的新数组 还有其他更简单的方法可以做到这一点吗 您可以使用 LINQ 以非常简洁的代码生成结果 Dim a2 a Skip 1 ToArray 批评者可能会说这很慢 您应该使用Array Copy反而 Dim a
  • 从 Unity WebGL 调用 Angular2 函数

    目前 我正在使用 Angular2 版本 2 1 2 和 Unity 可视化工具 使用 Unity 5 5 构建 我需要做的是从 Unity 到 Angular2 进行通信 我正在使用类似于下面的代码 public void GetBill
  • RxJS Angular2 在 Observable.forkjoin 中处理 404

    我目前正在链接一堆 http 请求 但是在订阅之前我无法处理 404 错误 My code 在模板中 service getData subscribe data gt this items data err gt console log
  • Angular子路由和404

    查找不存在链接的路线不允许您浏览子链接 应用程序路由 module ts import NgModule from angular core import Routes RouterModule from angular router im
  • 如何将 JSON 响应映射到 Angular 4 中的模型

    我已经尝试了很多 但无法将端点响应映射到我的模型 我正在使用 HttpClient 和 Angular4 我从服务中获取了数据 但它没有正确映射到我的模型类 我有以下 JSON 服务正在返回 result id 1 type User co
  • Angular 8 - 删除 ng-component 标签 - 表行模板

    我有一个灵活的表格组件 有两种模式 普通表 有效 自定义行模板 这不是因为角度添加
  • 角度材质选择不会检测嵌套组件生成的选项的更改

    我正在尝试提取过滤和显示我的逻辑mat option是我的mat selects 到他们自己的组件中 然而 由于某种原因 会显示选项 但单击它们不会触发事件 我正在编写的网络应用程序有很多mat select每个都可能有很多mat opti
  • Jasmine.js 测试 - 监视 window.navigator.userAgent

    我需要找到改变的方法userAgent价值 我尝试过了spyOn the window navigator userAgent 但这没有帮助 JS Injectable export class DetectBrowserService b
  • 使用base-href和deploy-url构建Angular CLI来访问CDN上的资产

    的背景 我正在使用 Angular CLI 构建一个项目 包含多个应用程序 我想在我的域上的单独子路径上发布应用程序 例如example com apps app1 如果我设置 base href参数为 apps app1 它解决了有关路由
  • Angular 2 中的 ag-grid 单元测试

    有人在 Angular 2 中对 ag grid 组件进行过单元测试吗 对我来说 测试用例运行时 this gridOptions api 仍然未定义 很抱歉参加聚会有点晚了 但几天前我一直在寻找这个问题的答案 所以想为最终来到这里的其他人
  • 如何在 Chrome 开发者工具的控制台中启用下划线?

    我正在使用 Angular2 和下划线 import as from underscore 我也想在 Chrome 控制台窗口中使用下划线库 即使我确实在代码中间中断 并尝试使用 但我得到了 未定义 错误 我可以在 Chrome 控制台窗口
  • Angular 5 webpack 3 aot

    我正在尝试使用 webpack 3 和 Angular 5 进行 aot 构建 但是网上有很多教程 没有一个没有问题地显示完整的示例 到目前为止我已经有了以下配置 对于那些对路径有疑问的人 我在 java 应用程序中使用它 webpack
  • 如何使用动态创建的复选框过滤数据?

    这是我的代码 div div

随机推荐

  • Selenium Webdriver C# 无需等待页面加载

    我有以下场景 我想导航到一个页面 然后 一旦出现按钮就单击它 不等待页面加载 我不想等待初始页面加载 因为这需要很长时间 我的程序目前卡住 直到页面加载然后单击按钮 我基本上想导航到链接 然后无需等待页面并继续我的代码 无论如何还有这个吗
  • Bootstrap 手风琴箭头颜色 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我怎样才能改变颜色崩溃了手风琴箭头 我尝试了更多解决方案 但我设法仅更改按钮的文本颜色 恒定的颜色是蓝色 与深色背景根本不兼容 例子
  • ListView 性能缓慢

    我有一个习惯ListView我在那里展示了一些从本地数据库检索到的武器 我总共有 88 行 每行每次设置一个文本和一个图像getView 叫做 这ListView快速滚动时会出现滞后 垃圾收集器会变得疯狂 每秒删除一些 1M 对象 我不明白
  • 为什么这个正则表达式在 JavaScript 中的计算结果为 false?

    我正在寻找一个 0 9 数字的字符串 没有其他字符 这是用 假 值提醒我 var regex new RegExp d 0 9 alert regex test 123456789 这些返回 true 我明白为什么 和 表示整个字符串需要匹
  • Cookie 与子域 Nodejs httponly Cookie 共享

    我正在使用快速会话模块来维护会话 我有两个应用程序 我想与此应用程序共享cookie 父应用程序在 example com 中运行 子应用程序在 child example com 中运行 我使用它在子应用程序中设置的express ses
  • 禁止在第一个字符位置键入 0(零)

    我正在使用 Jquery 数字插件 该插件只允许在输入中键入数字值 tbQuan numeric 除了这个插件正在做的事情之外 我还需要在第一个字符位置禁用键入 0 零 任何帮助 将不胜感激 尝试这个 input keypress func
  • 可以像这样在 ASP.NET Core 中制作 SEO 友好的 Url

    我想问你们是否可以为我的项目做一些这样的路由 action title 我想知道这是否可能 这个网址也必须是主键吗 由于没有传递 ID 来知道这是哪篇博文 谢谢 您可以使用属性路由轻松地做到这一点 Route blogs public cl
  • 当应用程序无法处理深层链接时如何优雅地回退到网站

    情况 您有一个内容广泛的移动网站 m somewhere com 在 Google Play 上 您有一个 Android 应用程序 它复制了 m somewhere com 的主要功能 但不是全部 您的客户 雇主 投资者要求您为应用程序可
  • 在 bootstrap/compiled.php 中找不到 Laravel 4 类

    我已经使用 Git 创建了一个新分支 对我的代码应用了一些更新 在我的临时服务器上检查了该分支 现在我无法运行任何与 Composer 相关的内容 我已经在composer json中添加了一些新的包 这些包适用于我的开发环境 但是一旦我尝
  • 计算一下从 167.37 美元开始找零的不同方式?

    这是一个面试问题 给定一个金额 例如 167 37 美元 找到使用该货币可用面额为该金额找零的所有可能方法 任何人都可以想到一种空间和时间高效的算法和支持代码 请分享 这是我编写的代码 工作 我正在尝试找到它的运行时间 感谢任何帮助 imp
  • 未解析的 Aapt 错误

    在将我计划使用的图像添加到drawables文件夹后 我试图构建我的android应用程序 该项目之前运行得很好 但运行该项目后 出现一条错误消息 显示 Unparsed Aapt Error 该错误显示在 src 文件夹中 我尝试清理我的
  • 安装并加载“rJava”

    由于 rJava 的加载问题 我在加载 Deducer 包时遇到问题 rJava 的安装似乎正确完成 但在调用它加载时却失败了 拜托 有人可以提供一些智慧之光吗 错误 rJava 的 loadNamespace 中的 onLoad 失败 详
  • 如何在没有缩略图的情况下发布 Facebook 链接?

    我想使用以下方式发布 Facebook 链接图形API http developers facebook com docs reference api post 但我希望能够避免使用缩略图 Facebook 的网络界面在发布图像时有一个无缩
  • 在服务中注册接收者

    我有一个service可以从以下位置启动和停止button 但在service我想注册一个接收器来监听短信广播 我只想要service在运行时监听短信 我试过registerReceiver receiver intentfilter 但这
  • 每当输入文本时应用程序崩溃,无法识别的选择器发送到实例

    每当我尝试在文本字段上书写时 我都会遇到这个奇怪的错误 使用我的应用程序会崩溃 NSNull fastCStringContents unrecognized selector sent to instance 0x108e3eaf0 Te
  • 如何在 JavaScript 中正确地将对象从 for 循环推送到数组?

    我想通过 for 循环创建一个包含对象的数组 但有一个问题 我想要的形状如下 data apple label Fruits data banana label Fruits data mango label Fruits 所以我尝试了以下
  • 在 Pytorch 中获取负片(倒置)图像

    我想直接从数据加载器获取图像的负片并将其作为张量提供 有我可以使用的库吗 我试过火炬transforms并没有找到任何 不要费力 只需使用255 image它会给你一个负面的形象 试试吧
  • htaccess 阻止对目录的访问,但允许对文件的访问

    我有这样的情况 我正在 Zend Framework 中开发应用程序 htaccess 指向每个请求 索引 php 如果请求路径上存在某个文件或目录 则 htaccess 允许访问这些文件 例如 css js 图像等 现在我有这样的链接 e
  • std::vector::resize() 与 std::vector::reserve()

    评论区里有一个话题这个帖子 https stackoverflow com a 13017983 1629821关于使用std vector reserve vs std vector resize 这是原始代码 void MyClass
  • 两个自定义(角度)元素之间的通信

    两个自定义 角度 元素之间的通信 假设有两个自定义元素 login button