2013-05-01 2 views
1

나는 내가 좋아하는이 사용자 정의 개체를 호출 할 수 있습니다, 그렇지 않으면

var locationsMap = { 
      "obj1":[1], 
      "obj2":[7], 
      "obj3":[21]    
} 

과 같은 사용자 지정 개체가 :

var loc = "obj2"; 
alert(locationsMap[loc][0]); 

을 그리고 이것은에서 잘 작동 jsFiddle; 내가 넷 스위트에서 내 코드 내에서이 논리를 포함하면 그러나, LOC는 정의되고 다음 넷 스위트 디버거에서

nlapiLogExecution('debug',"Location: "+ loc); //works fine 
nlapiLogExecution('debug','Location: '+locationsMap[loc][0]); //throws exception 

:

$ nlapiLogExecution('debug','Location: '+locationsMap[loc][0]); 
> TypeError: Cannot read property "0" from undefined 

하는 이유는 locationsMap 객체를 통해 호출 정의되지 않은 등의 LOC 보여주는입니다 , 나는 그것을 단독으로 호출 할 때 을 정의하지 않습니까? 예상대로 nlapiLogExecution('debug','Location: '+locationsMap['obj2'][0]); 작품을 호출

--Edit--

.

--edit 2-- 나는이 문제가 발생되는 이유를 찾는 데 여전히 관심이 있지만, 때문에 이러한 문제에이 방법을 포기 결국

.

+2

왜냐하면'loc'은'undefined '부분이 아니기 때문입니다. 정의되지 않은 부분은 locationsMap [loc]입니다 - NetSuite를 사용하는 예제에서'loc'의 값은 무엇입니까? 특히,이 라인'nlapiLogExecution ('debug', "Location :"+ loc); // 잘 동작합니까? – phatskat

+0

locationsMap에는 키가 없습니다. 설정되기 전에 호출됩니까? – epascarello

+0

그 행은 특정 위치, 즉 pLocation 1 : myRedactedLocation'을 참조합니다. locationMap은 obj1 대신 myRedactedLocation을 갖습니다. –

답변

0

나는 이것을 netsutie 디버거와 SuiteCloud IDE 디버거에 버렸고 모든 것이 올바르게 돌아왔다. 시간이 문제를 해결했습니다.

var locationsMap = { 
      "obj1":[1], 
      "obj2":[7], 
      "obj3":[21]    
}; 
var loc = "obj2"; 
nlapiLogExecution('debug',"Location: "+ loc); 
nlapiLogExecution('debug','Location: '+locationsMap[loc][0]); 

debug Location: obj2 10/30/2014 20:05:41.303 
debug Location: 7 10/30/2014 20:05:43.284 
metrics usage 0, time 20096 10/30/2014 20:05:43.284 
관련 문제