javascript - Angular - 如何在函数内设置值?
问题描述
我无法设置this.isHiddenColumnAvail
值。如何设置这个值?
checkHiddenRowAndColumns(file) {
const workbook = new Excel.Workbook();
const arryBuffer = new Response(file).arrayBuffer();
arryBuffer.then(function (data) {
workbook.xlsx.load(data)
.then(function () {
const worksheet = workbook.getWorksheet(1);
//check hidden columns
for(var i=0; i < worksheet.columns.length; i++) {
if(worksheet.columns[i].hidden == true){
this.isHiddenColumnAvail = true;
break;
}
}
//check hidden rows
worksheet.eachRow(function (row,rowNumber) {
if(row.hidden == true) {
this.isHiddenColumnAvail = true;
}
});
});
});
}
解决方案
很简单,您需要将函数更改为箭头函数。
使用箭头函数,您可以使用this,允许您访问外部/全局变量。
请参见下面的示例:
worksheet.eachRow((row,rowNumber) => {
if(row.hidden == true) {
this.isHiddenColumnAvail = true;
}
});
在您的代码中,用箭头函数替换其他函数
观察:
- es6 或以上版本允许使用箭头函数
参考:
推荐阅读
- django - 怀疑重新升级 Django PayPal 应用程序集成
- linux - 在不暂停进程的情况下在 Linux 上获取 .NET Core 堆栈跟踪
- android-ndk - 在运行时找不到捆绑在 apk 中的共享库
- django - 在 django REST API 中为不同请求方法获取不同输出的最佳方法是什么?
- wordpress - 在 Google CloudSQL 上使用互连搜索替换 wordpress 迁移工具
- python - 即使未登录也打开页面,Django
- c# - 如何将多个 xaml 元素序列化为单个 xps 文件并打印 WPF 应用程序 c#
- java - 弱引用和自刷新缓存管理器
- javascript - 向下滚动时如何在顶部添加 20px
- javascript - 使用 REGEX 在节点 js 中提取 HTML 文档的文本