javascript - 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 中一样?
解决方案
您的问题是您将函数“值”分配给 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中添加了案例,以便您查看会发生什么。
推荐阅读
- swift - 如何将其移至顶部?
- javascript - 有人可以澄清这部分代码中发生了什么吗?
- android-studio - 从 sdk 29 迁移到 30 android studio 错误
- url - 如何检查url在lua中是否有效?
- python - 如何通过网站管理长时间运行的任务
- python - 如何使用两个列表查询集过滤器?
- javascript - 如何使用 Selenium 填写响应式表单
- intellij-idea - 如何在 intellij idea 中更改左侧菜单中按钮的大小?
- javascript - puppeteer 从单独的网格中获取所有链接
- matlab - 注册点云 - Matlab