如何将参数传递给 Appcelerator TabGroup 中的 sub-page?
How can I pass an argument to a sub-page in an Appcelerator TabGroup?
我正在使用 Appcelerator 制作一个基于选项卡的应用程序。在母版页 (info.js) 上有一个显示标题和 ID 列表的列表视图。如果单击该项目,则应将 ID 传递到详细信息页面 (info_details.js)。 如何将 id 从 master 传递到标签组中的详细信息页面?
我正在使用示例应用程序中的代码,但它没有将任何参数传递给子(详细信息)页面:
https://github.com/appcelerator-developer-relations/appc-sample-ti520/blob/master/app/controllers/index.js
function onListViewItemclick(e) {
var item = e.section.getItemAt(e.itemIndex);
//var controllerName = e.itemId;
openSample("info_details");
}
function openSample(controllerName) {
var controller = Alloy.createController(controllerName);
$.info.open(controller.getView());
}
Index.xml:
<TabGroup>
<Tab title="Tab 1" icon="KS_nav_ui.png" id="main">
<Window title="Nominate">
<Label>I am Window 1</Label>
</Window>
</Tab>
<Tab title="Tab 2" icon="KS_nav_views.png" id="info">
<Window title="Info">
<Require src="info"/>
</Window>
</Tab>
</TabGroup>
子页面(info_details)需要
var args = $.args;
var currentNid = args.nid;
您可以通过 createController args 参数传递参数。在您的情况下,您可以执行以下操作:
function onListViewItemclick(e) {
//e.itemId or whatever you want to send to the controller
openSample("info_details", {nid: e.itemId});
}
function openSample(controllerName, args) {
//pass the args to createController
var controller = Alloy.createController(controllerName, args);
$.info.open(controller.getView());
}
然后在 info_details
:
var args = $.args;
var currentNid = args.nid;
我正在使用 Appcelerator 制作一个基于选项卡的应用程序。在母版页 (info.js) 上有一个显示标题和 ID 列表的列表视图。如果单击该项目,则应将 ID 传递到详细信息页面 (info_details.js)。 如何将 id 从 master 传递到标签组中的详细信息页面?
我正在使用示例应用程序中的代码,但它没有将任何参数传递给子(详细信息)页面: https://github.com/appcelerator-developer-relations/appc-sample-ti520/blob/master/app/controllers/index.js
function onListViewItemclick(e) {
var item = e.section.getItemAt(e.itemIndex);
//var controllerName = e.itemId;
openSample("info_details");
}
function openSample(controllerName) {
var controller = Alloy.createController(controllerName);
$.info.open(controller.getView());
}
Index.xml:
<TabGroup>
<Tab title="Tab 1" icon="KS_nav_ui.png" id="main">
<Window title="Nominate">
<Label>I am Window 1</Label>
</Window>
</Tab>
<Tab title="Tab 2" icon="KS_nav_views.png" id="info">
<Window title="Info">
<Require src="info"/>
</Window>
</Tab>
</TabGroup>
子页面(info_details)需要
var args = $.args;
var currentNid = args.nid;
您可以通过 createController args 参数传递参数。在您的情况下,您可以执行以下操作:
function onListViewItemclick(e) {
//e.itemId or whatever you want to send to the controller
openSample("info_details", {nid: e.itemId});
}
function openSample(controllerName, args) {
//pass the args to createController
var controller = Alloy.createController(controllerName, args);
$.info.open(controller.getView());
}
然后在 info_details
:
var args = $.args;
var currentNid = args.nid;