0

我正在使用 AlloySliderMenu 小部件使用 Titanium SDK 3 构建应用程序。

这个小部件创建了一个类似于 Facebook 应用程序的滑块菜单。听起来它很容易使用,但我面临以下问题。

在 index.xml 中,我需要小部件。

在应用程序的 index.js 中,我有以下代码:

currentView = Alloy.createController('list').getView();
//ds is the slider menu id
//contentview in the main panel of the menu
$.ds.contentview.add(currentView);

这将在应用程序的主窗口中打开我的“列表”视图。

问题是,在我的 list.js 控制器中,我有一个函数应该在按钮的单击操作上将 $.ds.contentview 内容更改为另一个视图。但我无法从列表容器访问 $.ds.contentview 并使用此对象。

我已经尝试过 Alloy.createWidget 等。但没办法,它不起作用。

4

2 回答 2

0

如果您的问题是范围,可以使用全局变量或 CFG 变量快速修复:

Alloy.Globals.someGlobalObject = { key: 'value' };
Alloy.Globals.someGlobalFunction = function(){};

var theObject = require('alloy').Globals.someGlobalObject;

这里有更多关于使用这个变量的信息:http: //docs.appcelerator.com/titanium/latest/# !/api/Alloy

如果这不能解决问题,您可以在创建控制器时在 JSON 对象中发送参数,例如:

Alloy.createController('list', {
        title : "Unable to login",
        message : authData.FailureReason,
        callback : callbackFunc
    }).getView()

也许回调函数可以帮助你。

于 2013-07-11T18:17:34.480 回答
0

正如马里奥提到的:在 index.js 中,使用全局:Alloy.Globals.ds = $.ds;

在 list.js 中,您可以通过以下方式访问小部件:Alloy.Globals.ds

于 2013-12-18T12:50:41.707 回答