2012-07-05 2 views
6

java 및 C++에서 변수를 전역 적으로 저장하고 프로젝트의 어느 위치에서나 그 값에 액세스 할 수있었습니다. 말하기, 나는 Residence라고 불리는 클래스 안에 있고 INTresidenceNumberhouseNumberGlobalVariable이라는 전역 변수에 저장하고 있습니다.EXT JS에 전역 변수가 있습니까

이제 프로젝트의 모든 클래스에서 houseNumberGlobalVariable에 액세스 할 수 있습니다. 비슷한 방식으로, 내가 사용할 수있는 EXTJS에 전역 변수가 있습니까?

한 클래스에서 값을 설정하고 다른 클래스에서 값에 액세스해야합니다. EXT JS에서 이에 상응하는 것은 무엇입니까? 나는 EXTJS에 글로벌 변수 개념이 있다고 생각하지 않는다. 그러나 그 안에 동등한 것은 무엇인가?

답변

3

를 사용 어디서나 코드에서 액세스를 필요로하는 경우이 방법.

var globalVar; 

당신은 당신이 당신의 전역 변수를 선언 할 수있는 응용 프로그램을 기반으로

globalVar.myStore=yourStore; 
+0

하나의 클래스에서 모든 global2 변수를 쉽게 유지할 수 있습니다. 그래서 @ sha의 접근 방식을 사용하여'view','store'를 저장할 수 있습니까? –

+1

예,하지만 시도하지 않았습니다! 나는 보통 모두 같은 var에 추가합니다. globalVar.myView, globalVar.myCtl처럼. 나는 bontit가 여기의 학급을 사용하고있는 것을 안다. – Jom

+0

'globalvar.mystore'에 저장된'store'에 어떻게 접근합니까? 그것은 var입니까 accessstore = globalvar.mystore; ?? –

15

특수 수업을 만들고 여기에 변수 global 개를 모두 입력하십시오.

Ext.define('MyApp.global.Vars', { 
    singleton: true, 
    .... 
    houseNumberGlobalVariable: undefined 

}); 

그냥 그냥 글로벌 변수 역할을 app.js에 변수를 선언 MyApp.global.Vars.houseNumberGlobalVariable

+0

어디에서이 파일을 만들어야합니까? '보기'에? –

+1

클래스에 대해 별도의 파일을 만들거나 주 app.js 파일에 넣는 것이 좋습니다. – sha

+1

이것은 ExtJS로 전역 변수를 선언하는 가장 좋은 방법입니다. 너무 나쁘다는 답변으로 설정되지 않았습니다. –

2

처럼 그 어떤 물건도 추가 할 수 있습니다.

시나리오 1 : 당신이 Appconstants 선언

(당시 기준으로 설정 갈 즉 자주 변수를 변경) 게터/세터 메소드를 사용하려는 경우 설정

내부에 선언

Ext.define('Practice.utilities.AppConstants', { 
     alias:'widget.AppConstants', 
     config:{ 
     mainVarTest : 'mainVarTest', 
     }, 
    testvar: 'Testing value', 
    foo: 'bar', 
    meh: 42, 
    constructor : function(options){ 
    this.initConfig(options); 
    } 
}); 

변수 호출

var AppConstants = Ext.widget("AppConstants"); 
console.log(AppConstants.getMainVarTest()); 

시나리오 2 : 응용 프로그램이 전역 변수를 필요로하지만 응용 프로그램 내부에 더 이상 변경할 수 실 거예요 경우 싱글 톤 클래스

내부에 선언합니다. 이 클래스는 상수 변수를 한 번만로드하는 데 도움이됩니다. (즉 변수를 변경하지 않을 것입니다). 이 유형은

var AppConstant=Practice.utilities.AppConstants; 
console.log(AppConstant.foo); 

시나리오 3을 호출

Ext.define('Practice.utilities.AppConstants', { 
      alias:'widget.AppConstants', 
      singleton : true, 
      testvar: 'Testing value', 
       foo: 'bar', 
       meh: 42, 
      }); 

선언 응용 프로그램

정장입니다 : 정역학로 선언

정역학은 정적 변수는 (정확히 동일합니다 자바로).정적 변수 사용의 장점은 변수의 수명이 명시 적으로 지워질 때까지 무기한으로 오랜 기간입니다.

Ext.define("Practice.utilities.AppConstants",{ 
     statics  : { 
     mainVarTest : 'mainVarTest' 
      }, 
     }); 
1

여기서 누락 된 한가지는 Sencha Architect 프로그램의 글로벌 변수 작성 방법에 대한 해결책이었습니다.

프로젝트 속성에서 "응용 프로그램"노드로 이동하십시오. Configs 검색/필터 상자에서 다음을 클릭하십시오. 이는 검색뿐만 아니라 구성 항목 작성을위한 것입니다. 이 상자를 처음 볼 때 Smokey 사전 채움 텍스트 Filter Configs...이 표시됩니다.

전역 변수 이름을 입력하면 (구성 목록에 값이있는 경우이 변수가 이미 있거나 키워드를 사용하고있는 경우)의 목록에는 아무 것도 없습니다. 텍스트 상자 오른쪽의 자물쇠 아이콘은 "추가"버튼입니다. 응용 프로그램에 전역 변수를 추가하려면 "추가"버튼을 클릭하십시오.

이 시점에서 Foo 변수를 생성했다고 가정 해 보겠습니다. 이제 구성 목록에 항목이 표시됩니다. 이 항목의 왼쪽에는 줄임표 단추가 있습니다.이 줄은 현재 우리가 만든 새 변수가 String임을 나타냅니다. 버튼을 클릭하고 '숫자'입력란과 같이 다른 것으로 변경하십시오. 이 새 변수의 값을 입력하면 이제 전역 변수가 생깁니다.

그래서 어떻게 새로 생성 된 변수에 액세스합니까? 다음은 전역 변수를 사용할 로컬 변수로 채우는 코드 샘플입니다.

var bar= MyApp.app.Foo; 

'MyApp를'참조는 작성중인 응용 프로그램의 응용 프로그램 name 구성 설정입니다. name에서 필터링하여 Application 노드의 구성 설정에서이 동일한 값을 찾을 수 있습니다.

관련 문제