Javascript 单击事件功能在chrome上不起作用
“单个选项包含*ngFor和(单击)事件指令。*ngFor循环使用keyvalue管道迭代对象。下拉选项显示良好,但当我在chrome上单击这些选项时,它不会调用函数,但在firefox上工作。”Javascript 单击事件功能在chrome上不起作用,javascript,html,angular,Javascript,Html,Angular,“单个选项包含*ngFor和(单击)事件指令。*ngFor循环使用keyvalue管道迭代对象。下拉选项显示良好,但当我在chrome上单击这些选项时,它不会调用函数,但在firefox上工作。” subjects = { 'cse': 'Computer Science', 'eee': 'electrical and electronics engineering', }; getSub(sub) { console.log(sub); } {
subjects = {
'cse': 'Computer Science',
'eee': 'electrical and electronics engineering',
};
getSub(sub) {
console.log(sub);
}
{{item.value}}
预期:我只希望执行getSub()函数。
看起来您忘记了在*ngFor之后和(单击)事件属性之前的结束引号
<select>
<option *ngFor="let item of subjects | keyvalue" (click)="getSub(item.key)">{{item.value}}</option>
</select>
{{item.value}}
使用更改事件而不是单击事件,并订阅选择元素而不是选项
<select (change)="getSub($event.target.value)">
<option>Not Selected</option>
<option *ngFor="let item of subjects | keyvalue" [value]="item.key" >
{{item.value}}
</option>
</select>
未选择
{{item.value}}
stackblitz演示尝试删除
| keyvalue
,并在主题之后使用end“
,然后再次测试!对不起,先生,我刚刚重新写了代码。这就是我犯错误的原因。这段代码在firefox上完全可以正常工作。谢谢,先生,很好用。非常感谢你特别为stackblitz演示。我刚注意到这份工作,真的。。这真的很有帮助。
<select (change)="getSub($event.target.value)">
<option>Not Selected</option>
<option *ngFor="let item of subjects | keyvalue" [value]="item.key" >
{{item.value}}
</option>
</select>