2015-04-01 74 views
0
$(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> 

    }); 

timeSpent从控制器来的变量,一个Salesforce的地图字符串到十进制:未捕获的参考错误:<mapkey>没有定义

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未捕获的ReferenceError:Geblockt是没有定义d

我不知道为什么。 “Geblockt”是来自该映射的键,类型字符串。该错误只显示地图的键,而不显示值。任何想法,任何人?

这里是从Inspector(铬)调试

<script> 

$(文件)。就绪(函数(){

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); 

});

+0

使用'键= “{项目!}”;' – Satpal 2015-04-01 10:40:11

回答

0

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

其分配在引号那么它将被视为字符串:

key = "{!item}"; 
+0

哇。不知道那很简单。你能解释一下背后的想法吗?我对javascript/jquery比较陌生。非常感谢! – lheinen 2015-04-01 10:46:09

+0

@lheinen,在本例中'key = Geblockt;','Geblockt'将被视为另一个变量'key =“Geblockt”;'它将被视为字符串 – Satpal 2015-04-01 10:47:45

相关问题