v.context。$ implicit。(PropertyName)不是一个函数

时间:2018-12-20 08:34:31

标签: javascript angular typescript angular6

我需要在Angular6中获得用户动态权限。

我必须从数据库返回菜单列表:

  <li *ngFor="let op of optionList">
    <!-- <fa-icon [icon]="op.icon"></fa-icon>  -->
    <label (click)='op.routeFunctionName()'>{{op.optionName}}</label>
  </li>

this:op.routeFunctionName()使用路由的功能名称。

路由:

 GoRoleManager(){
     this.router.navigate(['panel/dashboard/'+this.userName+'/role'])
 }

但是当我单击菜单时,它向我显示此错误:

  

错误TypeError:_v.context。$ implicit.routeFunctionName不是函数

出什么问题了?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我认为您已将JS代码保存在routeFunctionName中并尝试调用它。这只是纯文本。如果您想这样做,可以使用eval进行,但不推荐

更新(请参阅评论)

如果要通过字符串变量调用函数,则应这样编写:

<label (click)='this[op.routeFunctionName]()'>{{op.optionName}}</label>