0

我想将数据从一个窗口发送到另一个窗口。

示例: 我在第一个窗口上有一个文本字段和一个按钮。单击窗口时,我需要将文本字段值发送到第二个窗口吗?

我找到了一个教程,但它不在 MVC 中。

4

2 回答 2

3

我创建了一个新的合金控制器(在您的项目中单击鼠标左键,然后单击新建),这就是我将参数传递给下一个视图的方式。

新控制器称为 CallBack,第一个控制器称为 index。

在 CallBack.xml 我有:

<Alloy>
    <View class="container">
    </View>
</Alloy>

在 CallBack.tss 我有:

".container": {
    backgroundColor: "black"
}

在 CallBack.js 我有:

var args = arguments[0] || {};
//here you can do whatever you want to your parameter, i just show the value.
alert(args.textField);

最后在 index.js 中,这就是我传递 textField 参数的方式:

//with a button i can open a new view in my current window
$.btnNext.addEventListener('click',function(e){
    //tfInsert is the id of my textfield in index.xml file and with .value i can access to whatever it contains
    //the "?" operator is like an if
    var textField = $.tfInsert.value != "" ? textField = $.tfInsert.value : textField = "Hello";
    var nextView = Alloy.createController('/CallBack', {
        textField: textField
    }).getView();
    //this is how i add a new view to my current window
    $.window.add(nextView);
});

希望这可以帮助。

于 2013-08-13T20:04:37.523 回答
0

在 controller.js 中(我们从中传递数据)

function createController(win)
 {
    //title is the data to pass
    var platform = Ti.Platform.osname;
    var calledWindow = require('/ui/' + platform + '/addProductWindow').createCalledWindow(title);
        calledWindow.open();

};

在调用WindowController.js

function createController(win){
    //Do whatever control you want
};

在调用Window.js

exports.createCalledWindow = function(title) 
{
        //Do whatever UI you want

    Ti.include('/Controllers/calledWindowController.js');
    var controller = createController(win); 

    return win;
};
于 2013-08-14T10:52:30.697 回答