2012-03-11 1 views
0

Tabgroup을 통해 제어중인 여러 창 응용 프로그램을 사용하고 있습니다. 각 창마다 URL로 전달되는 각 창마다 .js 파일을 사용하고 있습니다. 나는 또한 재사용 가능한 코드를위한 루틴을 작성하고있는 function.js 파일을 가지고 있는데, 예를 들어 폼 생성이나 테이블 뷰 등. WindowA에있는 폼 요소를 생성하는 함수를 호출해야하는 상황에 처하게되었다. WindowA에서 필자는 필요한 모든 양식 요소를 명시 적으로 정의했습니다. 이제 함수 루틴에서 이미 작성된 양식 요소의 참조를 가져 오려면 무엇을 전달해야합니까?티타늄 appcelerator : 다른 Windows에서 참조 전달

TableView는 별도의 Window에서 생성되고 WinB라고 말하면서 functions.js로 작성된 루틴을 호출하여 행을 생성합니다. 변수가 있음에도 불구하고 정의되지 않은 오류가 발생하는 이유는 WinA에서 전역입니다.

전체 응용 프로그램에서 이러한 변수에 대한 참조를 얻으려면 어떻게해야합니까?

답변

3

변수를 전달하기 위해 Ti.App을 사용하지 말 것을 권장합니다. 모범 사례는 아닙니다. 내가 원하지 않을 것이라는 것을 알고 있지만 URL을 사용하여 창을 사용하지 않도록 코드를 리팩토링하는 데 시간을 허비하지 마십시오. 단일 인스턴스/commonJS 접근 방식으로 이동하십시오.

또한 현재 가장 좋은 방법은 코드를 https://github.com/appcelerator-titans/App를 참조 https://wiki.appcelerator.org/display/guides/Mobile+Best+Practiceshttps://wiki.appcelerator.org/display/guides/CommonJS+Modules+in+Titanium

를 참조하십시오.

리팩토링하는 데는 시간이 걸릴 수 있지만 앱이 훨씬 안정적이며 코드가 훨씬 더 깨끗합니다.

0

먼저 글로벌 변수를 예 : Ti.App 개체. AFAIR, 이것 또는 이와 유사한 것이 iPhone에서 제대로 작동하지 않았습니다. 문제가 해결되지 않을 경우

는, 폐쇄와 트릭있다 : 또한

myVar = {field: 'some value'}; 
Ti.App.getMyGlobalVar = function() { 
    return myVar; 
} 

, 내가 Ti.App가 또는 다른 네임 스페이스가 작동 여부를 모르겠어요. Titanium appcelerator를 사용한 이후로 몇 달이 지났습니다.

관련 문제