钛/合金小部件和控制器

时间:2013-07-11 17:08:14

标签: controller widget titanium titanium-alloy

我正在使用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等..但是没有办法,它将无法正常工作。

2 个答案:

答案 0 :(得分: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()

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

答案 1 :(得分:0)

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

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