javascript - 函数的 Javascript 语法,Internet Explorer <= 11 (vuejs) 中的问题
问题描述
Internet Explorer <= 11 上的此代码不起作用(仅在边缘有效)
Bus.$on('UpdateCartData', (event) => {
this.cart = event.cart;
this.cart_options = event.cart_options;
});
说 SCRIPT1002:语法错误
当我通过 Babel polyfill 对其进行转换时,建议将其转换为:
Bus.$on('UpdateCartData', function (event) {
因为这不再显示语法错误,但即使在 Google Chrome 上,逻辑和功能也停止工作。
有什么想法该怎么做?
解决方案
重复的链接帮助我理解了结构。
“在 ECMA 脚本 6 中定义,箭头函数采用封闭(函数或全局)范围的 this 绑定。”
所以应该是:
var vm = this;
Bus.$on('UpdateCartData', function (event) {
vm.cart = event.cart;
vm.cart_options = event.cart_options;
});
}
推荐阅读
- objective-c - Objective-c:如何在底层创建块,成本是多少?
- php - 请求区域设置不同:控制器参数与 RequestStack
- powershell - PowerShell - Office 365 邮箱 - 从特定文件夹获取电子邮件
- javascript - 如何在 UI 中按 results.title 列出电影名称
- python-3.x - 如何在 tkinter 中插入新行
- automation - 如果 botium.json 文件未存储在默认位置或以其他名称保存,我可以从哪里指定要使用的 botium.json 文件
- php - CakePHP LocaleSelectorMiddleware 不工作
- python - 对于 tensorflow 中的分类模型,有没有办法在训练期间施加非对称成本函数?
- php - 如何在从数组元素循环遍历数组时制作标题
- vuejs2 - 如何从 django rest 项目中获取 vue 中的图像 url