0

在目标 c 中,我们可以通过 nextClassname.recievedVariable = passVariable; 在两个类之间非常轻松地传递数据。

我用钛也试过了,但失败了

我尝试如下

在二等

$.table.addEventListener('click', function(e) {
                         var selected = e.row;

                         alert(e.row.title);

                         var TodayStatus = Titanium.UI.createWindow({ url:'TodayStatus.js' });

                         TodayStatus.seletedProj = e.row.title;
                         // var TodayStatus = new Alloy.createController("TodayStatus");
                            TodayStatus.getView().open();


                         });

在第一个 Calss 中,我们必须从另一个类中接收字符串

var win = Ti.UI.currentWindow;
Ti.API.info(win.seletedProj);

但会导致错误,如

  message = "'undefined' is not an object (evaluating 'win.seletedProj')";
[ERROR] :      name = TypeError;
4

3 回答 3

1

You can pass the data by passing parameter like this.

x.addEVentListener('click', function(e){
    var controller = require('controllerPath').createWindow(e.value);
controller.open();
})

And in controller.js

exports.createWindow = function(value)
{
   //whatever You like to do with UI
}
于 2013-08-13T07:24:41.837 回答
0

有关如何在 Alloy 中执行此操作,请参见此处的链接,

https://github.com/aaronksaunders/alloy_fugitive/blob/master/app/controllers/Fugitives.js#L29

但基本思想是在创建新控制器时将对象作为参数传递。

$.table.addEventListener('click', function(_e) {
    var detailController = Alloy.createController('FugitiveDetail', {
        parentTab : $.fugitiveTab,
        data : fugitiveCollection.get(_e.rowData.model)
    });
    $.fugitiveTab.open(detailController.getView());
});

我提供的链接有一个使用合金的完整解决方案

于 2013-08-12T15:40:23.117 回答
0

如果您使用“url”参数创建一个新窗口,它会自动将该代码放入它自己的子上下文中,并且无法传递复杂的对象,请参见此处:

http://docs.appcelerator.com/titanium/3.0/#!/api/Titanium.UI.Window

我不再倾向于这样做了。

我会这样做的方式是将你的 todayStatus 窗口创建为一个常见的 js 类:

// todayStatus.js

var win = Ti.UI.createWindow({ top:0, left: 0, right: 0, bottom:0, etc... });

//any extra visual building code can go here

win.open();


exports.seletedProj = function(rowTtl){
    //this function is available outside the class
}

然后你可以像这样从你的主类中引用它:

// main.js

var TodayStatus = require('todayStatus');

TodayStatus.seletedProj(e.row.title);

etc...

希望有帮助

于 2013-08-12T14:39:31.323 回答