javascript - 带有参数和返回值的Angular 2 Click事件

标签 javascript angular

这个对我的通用 javascript 函数“openTab”的硬编码调用有效,并且 openTab 的返回值为 false,因此代码将在不提交表单的情况下更改/显示选项卡。

<button class="tablinks" onclick="return openTab(event,'tab1');">Tab 1</button>

一旦我做出这个动态,我就遇到了几个错误:

<ng-container *ngFor="let option of question.options">
    <button class="tablinks" (click)="return openTab(event, option.tabId);">{{ option.tabName }}
</ng-container>

上面的代码是我试图到达的地方,但解析器不喜欢“(click)=return”,当我删除返回时,我得到一个异常“_co.openTab”不是一个函数。

以下是我尝试过的:

<button class="tablinks" onclick="return openTab(event, 'tab1');">{{ option.tabName }}</button>

以上有效,但 id 是硬编码的,tabName 是动态的。

<button class="tablinks" onclick="return openTab(event, {{option.tabId}});">{{ option.tabName }}</button>

上面的代码给出了以下错误:出于安全原因,不允许绑定(bind)到事件属性“onclick”,请使用 (click)=...

<button class="tablinks" (click)="return openTab(event, {{option.tabId}});">{{ option.tabName }}</button>

由于返回,上面的代码将无法解析:解析器错误:意外的标记

<button class="tablinks" (click)="openTab(event, option.tabId);">{{ option.tabName }}</button>

上面的代码解析但是当你点击按钮时你得到:TypeError: _co.openTab is not a function

<button class="tablinks" (myClick)="openTab(event, option.tabId);">{{ option.tabName }}</button>

上面的代码解析了,但是当你点击按钮时没有任何反应,没有调用 openTab,没有错误

有什么建议吗?

最佳答案

语法是$event: https://angular.io/guide/user-input#get-user-input-from-the-event-object .以下应该有效:

<button (click)="openTab($event, option.tabId)"></button>

请注意,openTab 方法必须在组件类上公开。

关于javascript - 带有参数和返回值的Angular 2 Click事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49566792/

相关文章:

html - 在 Angular2 模板的表达式中使用 JSON.stringify

angular - 空错误 : no elements in sequence

javascript - 删除按钮事件的 Action 并创建另一个事件

javascript - 由于连接循环,运行 Paho javascript 示例导致网络连接崩溃

javascript - DNF 函数模式(javascript 正则表达式)

javascript - 什么是可能的 Javascript 约定/模式来避免 React 类/组件不必要的 namespace 污染

Angular 2 - PrimeNg 风格不起作用

javascript - 仅在 X 轴上在 Canvas 上移动图像

Angular2、Angular-cli、Webpack - 图像 Assets 未在 github 上加载 :pages after prod deploy

使用 BehaviorSubject 重新加载时 Angular 数据丢失