I'm build an application with appcelerator-studio.
The application create programmatically a table with this code:
controller.js
var rowData = [];
var header = Alloy.createController('result_row_header',{
examination:Titanium.Locale.getString(lang+"examination"),
start_date:Titanium.Locale.getString(lang+"start_date"),
end_date:Titanium.Locale.getString(lang+"end_date")
});
var viewHeader = header.getView();
//DISEGNO LA TESTATA
rowData.push(viewHeader);
$.table.setData(rowData);
function set_fields(lang) {
header.changeLanguage(lang);
}
result_row_header.js
var args = arguments[0] || {};
$.examination.text = args.examination;
$.start_date.text = args.start_date;
$.end_date.text = args.end_date;
function changeLanguage(lang){
$.examination.text=Titanium.Locale.getString(lang+"examination");
}
Now I want to call the changeLanguage method from controller.js but if I try to execute the method set_fileds (from controller.js) I have an error.
Just a little change in your code:
result_row_header.js
var args = arguments[0] || {};
$.examination.text = args.examination;
$.start_date.text = args.start_date;
$.end_date.text = args.end_date;
// this is the code to access function of a controller from any other
$.changeLanguage = function (lang){
$.examination.text=Titanium.Locale.getString(lang+"examination");
};
Rest of your code remains same.