我想将数据从一个窗口发送到另一个窗口。
示例: 我在第一个窗口上有一个文本字段和一个按钮。单击窗口时,我需要将文本字段值发送到第二个窗口吗?
我找到了一个教程,但它不在 MVC 中。
我想将数据从一个窗口发送到另一个窗口。
示例: 我在第一个窗口上有一个文本字段和一个按钮。单击窗口时,我需要将文本字段值发送到第二个窗口吗?
我找到了一个教程,但它不在 MVC 中。
我创建了一个新的合金控制器(在您的项目中单击鼠标左键,然后单击新建),这就是我将参数传递给下一个视图的方式。
新控制器称为 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);
});
希望这可以帮助。
在 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;
};