2017-06-12 4 views
0

私はAppceleratorでタブベースのアプリケーションを作っています。マスターページ(info.js)には、タイトルとIDのリストを示すリストビューがあります。アイテムをクリックすると、IDは詳細ページ(info_details.js)に渡されます。 マスターからidをタブグループの詳細ページに渡すにはどうすればよいですか?私は、サンプルアプリケーションからのコードを使用していますが、それはサブ(詳細)ページに任意の引数を渡すことはありませんAppcelerator TabGroupのサブページに引数を渡すにはどうすればよいですか?

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; 

答えて

1

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; 
あなたのケースでは、あなたのような何かを行うことができます
関連する問題