这个对我的通用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>
上面的代码给出了以下错误:出于安全原因,不允许绑定到事件属性'onclick',请使用(单击)= ...
<button class="tablinks" (click)="return openTab(event, {{option.tabId}});">{{ option.tabName }}</button>
由于返回,上面的代码不会解析:Parser Error:Unexpected token
<button class="tablinks" (click)="openTab(event, option.tabId);">{{ option.tabName }}</button>
上面的代码解析但是当你点击按钮时得到:TypeError:_co.openTab不是函数
<button class="tablinks" (myClick)="openTab(event, option.tabId);">{{ option.tabName }}</button>
上面的代码解析但是当你点击按钮没有任何反应时,openTab没有被调用,没有错误
有什么建议吗?
答案 0 :(得分:1)
语法为$event
:https://angular.io/guide/user-input#get-user-input-from-the-event-object。以下应该有效:
<button (click)="openTab($event, option.tabId)"></button>
请注意,openTab
方法必须在组件类上公开。