1

所以我有一个钛应用程序,我只是阅读了关于单一上下文的信息。(顺便说一句,这里有人应该写一本关于钛编程的书……唯一一本没有真正提到单一上下文或任何新奇的东西。哎呀,让它成为一本电子书。我会买它)

钛文档强调了它们的使用(http://docs.appcelerator.com/titanium/latest/#!/guide/Coding_Strategies-section-29004891_CodingStrategies-Executioncontexts),然后礼貌地忘记了如何实现单个上下文!

所以,问题:假设我有 awesomeWidget 页面 - 这只是显示一个按钮,当你点击一个按钮时,会出现一个新屏幕。

aswesomeWidget 页面是通过另一个页面访问的——它不是来自 Titan 应用程序的根目录。

保持单一上下文,如何将按钮创建的视图添加到当前窗口?

我是否:

保持一个指向当前(也是唯一)窗口的全局指针?

将保持当前窗口的变量向下传递给使用它的所有后续页面

别的东西?

4

1 回答 1

1

首先,Titanium 会为您保留对当前窗口的引用,所以这个用例很简单。例如:

awesomeWidgetButton.addEventListener('click' function(e) {
    var yourView = Ti.UI.createView({...});
    Titanium.UI.currentWindow.add(yourView);
});

require如果你想进一步挖掘,单一上下文的概念与 CommonJS 模块的使用和关键字密切相关。保持单一上下文非常简单,只是永远不要打开url填充组件的窗口,并自由使用require()关键字。除此之外,跟踪谁指向什么取决于您的想象力,反之亦然,这里有适用的标准模式和最佳实践(MVC、Singletons,只是保持简单),就像用任何其他语言进行编码一样。

于 2013-04-08T02:51:15.963 回答