首页 > 解决方案 > Angular 7中键值分配的Javascript函数

问题描述

我正在尝试为遇到的下一个问题找到解决方案。我正在尝试通过在我的项目中使用 Amchart3 来构建动态字符串,我需要执行以下操作:

return [{
    id: 'Rate',
    alphaField: 'alpha',
    balloonText: function(graphDataItem, graph): String {
      let stringNew = 'smth';
      return stringNew;
    },
}];

我遇到的问题是写在ballonText值中的函数没有被触发(我放了一个断点检查)并且在调用使用返回列表的函数时没有返回任何内容。

我的问题是,我怎么能写一个像

key: function(a,b) {
     return a + b;
}

在 Angular 7 中,就像在 Javascript 中一样?

标签: javascriptangular

解决方案


您的问题是您将函数“值”分配给 key 的方式ballonText。如果使用 es6,它可以让你简写键/值名称,你可以像这样分配函数:

const es6Assign = {
  id: 'Rate',
  myFunc(str) {
    return str.toUpperCase();
  }
}

// prints out HELLO
console.log('calling es6Assign func: ', es6Assign.myFunc('hello'));

如果你想用普通的方式来做,你应该命名函数,即使它是一个键的值:

const explicitAssign = {
  id: 'Rate',
  myFunc: function myFunc(str) {
    return str.toLowerCase();
  }
}

// prints out hello
console.log('calling explicitAssign func: ', explicitAssign.myFunc('HELLO'));

至于为什么?; 我的猜测是,即使对而言,关键是函数的“名称”,但对于代码,没有名称的函数不存在,即function() { ... }会返回undefined。我在示例Fiddle中添加了案例,以便您查看会发生什么。


推荐阅读