当前位置: 首页 > 知识库问答 >
问题:

_co.onCLk不是一个函数

巫晋鹏
2023-03-14

在Angular2中尝试一个代码,它的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>

角度组件.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)

共有3个答案

彭霄
2023-03-14

当您在html中编写< code>(event)="myFunc()"而没有在ts文件中调用时,有时会出现此错误。

祖翰音
2023-03-14

下面的代码就可以了。

onClk = function(event){
    this.name = event.target.innerHTML;
}
都昊乾
2023-03-14

您在模板中错误地命名了函数,请将“L”更改为“L”

 (click)="onCLk($event)"

 (click)="onClk($event)"
 类似资料:
  • 问题内容: 我试图编写登录到网站的节点功能,但无法使其正常工作。我试图等待页面使用加载功能 这是我到目前为止的内容: 当我运行该函数时,我收到错误消息。这是怎么回事,我想念什么? 问题答案: 为了与其他硒语言绑定的一致性, 并已被弃用。 如果您使用,则应尝试使用代替来确定元素是否存在,如下所示: 或者,如果您要等到欲望元素出现,则应尝试使用以下方法:

  • 我试图使用rxjs输入自动完成的目的,但我一直得到这些错误TypeError:terms.debounce时间不是一个函数,即使我设置这些导入'rxjs/操作员/DebounceTime'; 我称之为的函数是:

  • 问题内容: 我试图要求一个文件,然后将其传递给var。我正在按照本教程创建身份验证系统。编写server.js文件并尝试编译后,出现bson错误,因此我更改了需要它的发行版本的猫鼬代码。 这是我的代码和错误: server.js 错误 我已经读到这通常意味着requireJS无法正确加载,但我不知道为什么或如何修复它。 根据评论进行编辑: 根据要求,这是 问题答案: 我认为这意味着在您的模块中未将

  • 在我的项目中,我创建了一个负责登录的组件。它返回一个表单并包含一个名为的验证方法。当前该方法如下所示: 我想让整个事情看起来更好,并用两个三元运算符和一个if语句切换了3个if语句: 但是,只要我尝试此操作,就会出现以下错误: TypeError:e.preventDefault(…)不是函数 我不知道在这里使用三元是如何影响事件对象的。特别是因为我在寄存器组件中以类似的方式完成了它,并且没有发生

  • 我试图在代码中使用以下服务: 问题是,在运行时,它会抱怨: 我已经定义res的数据类型为响应,但仍然抱怨 如果我用订阅替换地图,它工作正常:

  • 嗨,伙计们,我和Nuxt一起工作 我在服务器上以blob的形式保存了图像,我想在客户端上显示它 我的组件如下所示: 但是我一直得到以下错误: 网址。createObjectURL不是一个函数 有人知道问题出在哪里吗?