未捕获的引用错误:未定义<映射键>

Uncaught reference Error: <mapkey> is not defined

本文关键字:映射 未定义 引用 错误      更新时间:2023-09-26
$(document).ready(function() {

        var key = "testkey";
        var value = "testvalue";
        <apex:repeat value="{!timeSpent}" var="item">
            console.log(key);
            console.log(value);
            value = {!timeSpent[item]};
            key = {!item};
            console.log(key);
            console.log(value);
        </apex:repeat>
    });

timeSpend是一个来自控制器的变量,一个Salesforce的字符串到十进制的映射:

public Map<String, Decimal> timeSpent = new Map<String, Decimal(); 
// the map gets values via further code which works fine

当我执行上面的javascript时,控制台说:

2015-04-01 12:29:11.354cmRP_ResourceDashboard:45 测试键2015-04-01 12:29:11.354cmRP_ResourceDashboard:46 测试值2015-04-01 12:29:11.356cmRP_ResourceDashboard:49 未捕获的引用错误: 未定义 Geblockt

我不知道为什么。"Geblockt"是该地图中的键,类型字符串。该错误仅针对映射的键显示,而不针对值显示。有什么想法吗?

这是来自检查器的调试(铬(

 <script>

$(document(.ready(function(( {

  var key = "testkey";
  var value = "testvalue";
console.log(key);
console.log(value);
value = 0;
key = Geblockt; <---- HERE IS THE ERROR 
console.log(key);
console.log(value);
console.log(key);
console.log(value);
value = 5;
key = PR-122;
console.log(key);
console.log(value);

}(;

根据您的

示例Geblockt被视为未定义的变量,因此您会收到错误。

引号赋值,然后它将被视为字符串:

key = "{!item}";