我有一个视图对象(esri,javascript 4.9),我正在尝试填充属性。
当我在值中硬编码时,代码块可以正常工作,但是当我尝试在运行时使用字符串变量时,代码块将失败。
这是代码,其中包含硬编码值
view.graphics.add({
id: "centers",
symbol: {
type: "text",
color: "black",
text: "\ue62f",
font: {
size: this._defCallLocSize,
family: "CalciteWebCoreIcons"
}
},
geometry: {
type: "point",
latitude: parseFloat(_lat),
longitude: parseFloat(_lon)
},
popupTemplate: {
title: "",
content: ""
}
});
这是带有全局变量的代码
view.graphics.add({
id: "centers",
symbol: {
type: "text",
color: this._defCallLocColor,
text: this._defCallLocIcon,
font: {
size: this._defCallLocSize,
family: "CalciteWebCoreIcons"
}
},
geometry: {
type: "point",
latitude: parseFloat(_lat),
longitude: parseFloat(_lon)
},
popupTemplate: {
title: "",
content: ""
}
});
在调试器中查看this._defCallLocColor时,其作用类似于字符串(“ black”) 但是在运行时,颜色显示为白色(默认为esri)
现在要添加更多... lat和lon使用全局_lat和_lon正常工作
所以主要的问题是,为什么将全局变量this._defCallLocColor放入对象中时不将其视为字符串?
答案 0 :(得分:0)
问题的答案是....这是一个unicode问题,javascript不像我期望的那样将unicode表示为字符串。所以我找到了一个小提琴 从 用户名 在这个线程上... Converting unicode character to string format
在添加内联代码以将unicode更正为常规字符串时。
color: this._defCallLocColor,
text: unicodeToCharIgnoreCap(this._defCallLocIcon),
font: {
size: this._defCallLocSize,
提供了可行的解决方案。