我需要在标签应用中获取当前窗口。Titanium:无法在标签应用中获取当前窗口
我试图与
变种赢= Ti.UI.currentTab.window();
和
var win = Ti.UI.currentWindow;
但在两种情况下都会得到Uncaught TypeError: Cannot call method 'window' of undefined
错误。
我需要在标签应用中获取当前窗口。Titanium:无法在标签应用中获取当前窗口
我试图与
变种赢= Ti.UI.currentTab.window();
和
var win = Ti.UI.currentWindow;
但在两种情况下都会得到Uncaught TypeError: Cannot call method 'window' of undefined
错误。
如果您使用TabGroup,则可以通过activeTab property访问当前窗口。这不是全局函数,所以你必须有在你的代码参照TabGroup对象:
var tabGroup = Ti.UI.createTabGroup({ tabs: createTabs() });
tabGroup.activeTab.window
currentTab
和currentWindow
距离时,你可以从一个Ti.UI.createWindow({ url: 'foo.js' })
分拆多个JavaScript环境遗留下来的。我建议你不要使用它们。
当您需要从应用程序的一个部分与另一部分的UI进行通信时,有几种模式可供选择。
第一个选项:侦听并触发事件la Ti.App.addEventListener('foo', function(data){})
和Ti.App.fireEvent('foo', { })
。这很好地分离了代码,因此您可以在不更改启动代码的情况下移动UI处理代码。
第二选项:通过模块公开UI对象。在你的控制器中,exports.win = $.win;
。
第三选项:设置一个全局对象:Alloy.Globals.win = $.win;
。
谢谢。如果我使用Alloy,我应该在哪里设置全局对象。在index.js中?谢谢。 –
您应该在可以访问您要公开的视图的控制器中进行设置。 –
确定,所以在合金框架,我们只需使用$符号来获得其在.xml文件中创建的所有控件...
因此,如果您设置的.xml文件的窗口标签的ID,那么你可以获取当前窗口下面的例子...
.xml文件
<Alloy>
<Window id="win">
</Window>
</Alloy>
js文件
var win = $.win
所以从上面的代码你可以得到你当前的窗口。
希望你得到它。
你应该还提到你正在使用哪种结构? commonJS还是合金还是传统? –
嗨,我正在使用合金技术 –