2017-05-24 4 views
0

자바 스크립트 코드에 대한 도움이 필요합니다. 방금 최근에 네임 스페이스를 사용하기 시작했고 해결할 수없는 문제가 있습니다.네임 스페이스가있는 아약스 함수에서 다른 네임 스페이스의 javascript 액세스 함수

나는 두 개의 파일 data.js 각각 각 데이터와 테마에 네임 스페이스themes.js 있습니다. 데이터 공간에 는이 같은 Ajax 호출을 수행하는 기능을 가지고 :

var data = data || {};data = { get_companies: function (id) { $.ajax({ //blah blah blah }); } } 

과 테마 네임 스페이스에 내가 이런 기능이

: 나는 액세스 할 수 있습니다 동안

var themes = themes || {}; 
themes = { 
    themeAdd: function() { 
    //blah blah 
     $.ajax({ 
      //blah blah 
      success: function (data) { 
       data.get_companies('#someid'); 
      } 
     }); 
    } 
} 

문제이며, data.get_companiesthemes.js 파일 및 콘솔에서 아약스 콜백 내부에서 호출하려고하면 오류가 발생합니다 (data.get_companies는 함수가 아닙니다). 이 문제를 어떻게 해결할 수 있으며 아약스 콜백에서이 함수에 액세스 할 수없는 이유는 무엇입니까? 이 함수 내에서 data를받은 것입니다, 그래서

$.ajax({ 
    //blah blah 
    success: function (response) { 
     data.get_companies('#someid'); 
    } 
}; 

당신이 data를라는 arument와 익명 함수를 정의 순간 : 당신의 아약스 success 콜백에서

+0

첫 번째 장소는, 보자? hierachy matter –

+0

영어는 제 언어가 아니지만 다음과 같이로드합니다. 당신도 의미합니다. 두 사람은 클릭 핸들러에 붙어있어서 통화 시간에 모두로드됩니다. –

+0

알았는데 변경하십시오. –

답변

1

전달 된 인수의 이름을 변경 AJAX 요청에 따라 세계 data 개체가 아닙니다.

또한 이런 식으로 접근을 시도 할 수 있습니다 : 당신의 themes.js 다음 data.js

$.ajax({ 
    //blah blah 
    success: function (data) { 
     window.data.get_companies('#someid'); 
    } 
}; 
+0

은 charm과 유사하게 작동합니다. 더 잘 이해하려면 아약스 인수와 네임 스페이스 사이의 충돌을 명명하는 것이 원인입니까 ?? –

+0

간단히 말해서 예. – strah