0

appcelerator-studio でアプリケーションを作成しています。

アプリケーションは、次のコードを使用してプログラムでテーブルを作成します。

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");
}

今、controller.js から changeLanguage メソッドを呼び出したいのですが、(controller.js から) set_fileds メソッドを実行しようとすると、エラーが発生します。

4

2 に答える 2

1

コードを少し変更します。

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");
};

コードの残りの部分は同じままです。

于 2016-06-29T09:56:42.983 に答える