javascript - 错误typeerror : _co. onclk不是一个函数

标签 javascript html angular typescript

在 Angular 2 中尝试一个代码,它的 HTML 正在运行,但 Angular 代码没有执行它说我从 html 传递的值不是函数。请帮忙!

HTML: app.html - 我正在尝试显示学生详细信息。我在 angular app.component.ts 文件中有一个项目列表,我在 HTML 页面上调用它工作正常。但是当我将点击事件的值传递给 app.component.ts 时,它会给出错误并在控制台上显示这不是一个函数。

<div class ="card search">
    <h1 class = "search-headline"> Student Directory</h1>
    <label class = "search-label"> Search 
        <span *ngIf = "name">for: {{ name }}</span></label>
        <input class = "search-input" #newStudent>
        <button class ="btn"
        (click)="addstudent(newstudent.value)"
        >Add</button>
</div>

<ul class="studentlist cf">
<li class="studlist-item cf" *ngFor="let stud of students" (click)="onClk($event)">
    <h2 class="student-name">{{ stud.name }}</h2>
    <h3 class="student-emp">{{ stud.Empname }}</h3>
</li>
</ul>

Angular component.app.ts:我在这里定义变量并添加点击事件以显示我从 html 点击以显示在 UI 上的名称。同时,我提供了向 UI 上已添加的列表添加更多名称的功能。

import { Component } from '@angular/core';

@Component({
  selector: 'app',
  templateUrl: './partials/app.html'
})

export class AppComponent {
  name: string;
  students: any;
  event: any;

  onClk(event){
   this.name = event.target.innerHTML;
  }

  addstudent(value){
    if(value!=' '){
      this.students.push({
        name: value,
        Empname: 'xyz'
      });
    }
  }

  constructor(){
  this.students = [
    {
      name: 'Robin',
      Empname: 'abc' 
    },{
      name: 'Jack',
      Empname: 'Bcd' 
    },{
      name: 'John',
      Empname: 'Cde' 
    }
  ]
  }

}

当我运行代码时在控制台上收到错误消息:我在此处收到的类型错误是 onCLK 不是函数。它是一个从 HTML 返回值到 app.component.ts 文件的函数,我们从那里得到我们点击的值。还收到许多其他错误,不确定这是什么意思?

app.html:12 ERROR TypeError: _co.onCLk is not a function
at Object.eval [as handleEvent] (app.html:12)
at handleEvent (view.ts:142)
at callWithDebugContext (services.ts:815)
at Object.debugHandleEvent [as handleEvent] (services.ts:411)
at dispatchEvent (util.ts:185)
at eval (element.ts:238)
at HTMLLIElement.eval (dom_renderer.ts:75)
at ZoneDelegate.invokeTask (zone.js:425)
at Object.onInvokeTask (ng_zone.ts:288)
at ZoneDelegate.invokeTask (zone.js:424)

最佳答案

您在模板中将函数命名错误,将 "L" 更改为 "l"/p>

来自

 (click)="onCLk($event)"

 (click)="onClk($event)"

关于javascript - 错误typeerror : _co. onclk不是一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47298473/

相关文章:

html - <fieldset> 样式不起作用

angular - 如何在 Angular 4 中创建分页组件?

angular - 在需要表达式的地方得到了插值 ({{}})

javascript - 如何在特定条件下从动态数据中过滤结果

Javascript Raphael 动画路径

javascript - React Native - 如何在另一个函数中使用 'useState()'

javascript - 如何在不关闭相邻选项卡的情况下使用 jQuery 切换选项卡。

html - 如何使用 Gradle FindBugs 插件生成 HTML 输出

javascript - 将类添加到单个元素而不是全部在悬停时使用 JQuery

javascript - 在 JavaScript 中创建一个新的空对象