2016-04-28 5 views
0

Ich habe ein widget.js mit einer Tabelle und in seinem HeaderView habe ich eine Controller-Ansicht. Der Code:Titanium - Trigger vom Controller zu einer Ansicht

var table = Ti.UI.createTableView({ 
     id: ('table' + i), 
     data: tableData, 
     separatorStyle: OS_ANDROID ? Ti.UI.TABLE_VIEW_SEPARATOR_STYLE_NONE : Ti.UI.iPhone.TableViewSeparatorStyle.NONE, 
     headerView: Alloy.createController("Principal/Componentes/LocalizacionRow", {parent: $.board}).getView() 
    }); 

Ich möchte ein Spiel von LocalizacionRow passieren $ .trigger widget.js verwenden, aber es funktioniert nicht.

Mein Code:

LocalizacionRow.js

if(!e.cancel){ 
      $.localizacion.text = e.data[0].value; 


      $.trigger('recargar'); 

      Ti.API.info("## Periódico: " + Ti.App.Properties.getString('media') + " " + $.localizacion.text); 
     } 

widget.js

var header = table.getHeaderView(); 
header.on('recargar', function(e){ 
    Ti.API.debug("--- Recargar"); 
}); 

"--- Recargar" wird nie gezeigt. Was mache ich schlecht?

ich diesen Code hier gesehen habe: http://www.tidev.io/2014/09/10/the-case-against-ti-app-fireevent-2/

Und hier: https://wiki.appcelerator.org/display/guides2/Controller+events

Antwort

1

Wenn Sie Möchten Sie das Ereignis empfangen, müssen Sie dem LocalizacionRow Controller einen Trigger hinzufügen, wie folgt:

var LocalizacionRowController = Alloy.createController("Principal/Componentes/LocalizacionRow", {parent: $.board}); 

LocalizacionRowController.on('recargar', function(e){ 
    Ti.API.debug("--- Recargar"); 
}); 

var table = Ti.UI.createTableView({ 
    id: ('table' + i), 
    data: tableData, 
    separatorStyle: OS_ANDROID ? Ti.UI.TABLE_VIEW_SEPARATOR_STYLE_NONE : Ti.UI.iPhone.TableViewSeparatorStyle.NONE, 
    headerView: LocalizacionRowController.getView() 
}); 
+0

Vielen Dank, das funktioniert für mich !!! – amurcia

-1

Sie Ereignis in der Steuerung nicht in der Ansicht zu schießen, versuchen Sie dies:

var controller = Alloy.createController("Principal/Componentes/LocalizacionRow", {parent: $.board});  
var table = Ti.UI.createTableView({ 
    id: ('table' + i), 
    data: tableData, 
    separatorStyle: OS_ANDROID ?, 
    headerController : controller,               
    headerView: controller.getView(); 
}); 

var header = table.headerController; 
header.on('recargar', function(e){ 
     Ti.API.debug("--- Recargar"); 
}); 
+0

Wo feuern Sie das Ereignis ??? Ich verstehe nicht .... Ihr Code ist wie mein Code – amurcia

+0

Die Eigenschaft headerController existiert nicht – amurcia

+0

Sie können Proprieties hinzufügen, wie Sie möchten;), es ist nicht der gleiche Code mein Freund, versuchen Sie es einfach – HamidMly

Verwandte Themen