未捕获TypeError:(t.data ||“”)。search不是函数

时间:2017-06-08 01:43:38

标签: angular typescript angular2-template

我是棱角分明的新手,当我点击每个李时,我正试图显示警报,但我收到错误

  

未捕获TypeError:(t.data ||“”)。search不是函数

你可以告诉我如何解决它。

相关代码和示例:

http://plnkr.co/edit/M05wS03ynxX812u2MATc?p=preview&open=app%2Fapp.component.ts

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

@Component({
  selector: 'my-app',

  styles: [`
    li {
      color: red;
    }
  `],
  template: `<ul class= "master">
                <li *ngFor ="let student of liArraycontent" (click) = "liClicked(this)"> {{student}} </li>
              </ul>`
})
export class AppComponent { 
  name = 'Angular';
  liArraycontent = ["testing 1", "testing 2", "testing3"]
  this.liClicked = function(e1) {
    alert('a');
  }


}


/*
Copyright 2017 Google Inc. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://angular.io/license
*/

1 个答案:

答案 0 :(得分:0)

typescript类您不需要this。只需删除组件中的this即可。

liClicked = function(e1) {
  alert(e1);
}

当您在this事件中使用template时,您将获得与{javascript不同的AppComponent。如果您想访问当前的li元素,请改用$event.target

参考 Plunker demo ,希望它会有所帮助。

BTW 我没有从您提供的示例中收到错误(t.data || "").search is not a function,也许您需要更多解释。