以下是组件与EventEmitter的工作方式:
import { Component, Output, EventEmitter } from "@angular/core";
@Component({
selector: "app-my-component",
template: ` <button (click)="clickEvent($event)">Foo</button> `
})
export class MyComponent {
@Output()
onClick: EventEmitter<string> = new EventEmitter<string>();
clickEvent(): void {
this.onClick.emit("something that comes from my.component.ts");
}
}
@Component({
selector: "app-root",
template: `
<h1>Title inside app component.</h1>
<app-my-component (onClick)="doSomething($event)"></app-my-component>
`
})
export class AppComponent {
doSomething(foo) {
console.log(foo);
}
}
如何对RXJS可观测对象执行相同的操作?
我正在尝试以下方法:
import {
Component,
ElementRef,
ViewChild,
AfterViewInit,
Output
} from "@angular/core";
import { Observable, fromEvent } from "rxjs";
import { tap } from "rxjs/operators";
@Component({
selector: "app-my-component",
template: ` <button #btn>Foo</button> `
})
export class MyComponent implements AfterViewInit {
@Output()
onClick: Observable<string>;
@ViewChild("btn", { static: true }) buttonRef: ElementRef<HTMLButtonElement>;
foo$: Observable<?>;
ngAfterViewInit() {
this.foo$ = fromEvent(this.buttonRef.nativeElement, "click").pipe(
tap((e) => e.stopPropagation())
);
}
// what should be returned here?
onClick(): Observable<?> {
return this.foo$
}
}
@Component({
selector: "app-root",
template: `
<h1>Title inside app component.</h1>
<app-my-component (onClick)="doSomething(event$)"></app-my-component>
`
})
export class AppComponent {
doSomething(foo) {
console.log(foo);
}
}
或者你不应该在按钮上使用RXJS点击事件?
阅读了很多很老的博客文章,所以我没有找到一个完整的按钮点击事件的例子。任何指向正确方向的指针和工作示例都将真正有助于理解概念。
我在angular中从未见过这样的按钮点击方法,而且您已经在使用RxJS和EventEmitter:)
看看https://angular.io/api/core/EventEmitter
EventEmitter扩展了Subject,所以如果您想直接使用RxJS,请尝试使用它。您可以检查这个答案Angular-Rxjs Observable-Clicking事件实现,并给出一个很好的解释
此外,使用本机元素不受角度限制
下面是一个jquery教程,该教程使用标准的href文本链接进行初始化。我把一切都搞定了。作为最后一步,我想移除文本链接,并用一个使用其click事件的按钮替换它。这里是我的代码,它现在存在: 所以,我设置了一个非常简单的按钮,但是我不知道要在onclick事件处理程序中放什么。如果这是一个简单的URL链接,没有问题。我将只编写一个jquery函数(甚至只编写一个js函数)。但在这段代码的上下文中
我正在尝试用selenium WebDriver单击一个按钮。但无法识别按钮。这是我的代码:它返回一条错误消息 NoSuchelementException:消息:u'没有这样的元素:找不到元素:{“method”:“XPath”,“Selector”:“//*[@id=”ArtifactContentList“]/div[2]/div/div[3]/content-dataset-actions
我想单击以下按钮: https://i.stack.imgur.com/ifiDC.png 到目前为止,我的代码看起来像这样,但什么也没发生: https://i.stack.imgur.com/Cgi5v.png 谢谢你的帮助:)
编辑:底部的解决方案 这是一个跳棋游戏。单击一个按钮后,它等待单击第二个按钮与之交换。然而,有时你可能不想移动那个按钮,但一旦你点击了它,就没有回头路了,因为我无法禁用它。 在这里的其他帖子中,我看到人们使用 这只是使它在第一次单击后不可见。 这什么都干不了。 这也没什么用。编辑:所有这些方法都用true和false进行了尝试。 私有无效交换(){ 但你也需要 这样它就重新启用了它,或者其他什么,
我正试图抓取一个页面,获取一盘国际象棋的移动列表,该列表位于右侧菜单的“移动”选项卡下。 在浏览器中手动单击“移动”选项卡时,我可以通过 哪个(正确地)返回 当尝试通过单击按钮时,使用 似乎什么都没有发生,我不知道如何进行故障排除。 如何通过模拟单击(活动事件侦听器)切换到“移动”选项卡? 额外提示:是否可以使用rvest软件包?
问题内容: 我正在尝试在www.meetme.com上发送消息,但不知道该怎么做。我可以在评论区域中键入消息,但是单击“发送”按钮不会执行任何操作。我究竟做错了什么?当我登录并按登录按钮时,页面确实发生了变化,一切都很好。有人有任何想法或线索吗? 问题答案: 如果不了解正在访问的网页,就无法在禁用JavaScript的情况下执行AJAX请求。如果更改未成功,则必须继续进行调试,但请确保已启用Jav