Appcelerator / Javascript Использование переменной в качестве стандартного синтаксиса Вопрос - PullRequest
0 голосов
/ 01 марта 2011

Действительно вопрос javascript, но вот мой код ........ Я был бы очень признателен за помощь.Прошло слишком много времени с тех пор, как я был в окопах кодирования.Вот мой код.

Я хочу превратить loadtravelurl в одну функцию, которую я могу вызывать из нескольких мест.

Эти три строки ниже - мои проблемы.win2.title = название;win2.add (тв);tab2.open (webwin);

Я хочу иметь возможность передавать переменные в функции loadelectronicsurl, где я могу динамически изменять текст win2 в win2.title и win2.add (tv).Также хочу сделать то же самое с tab2.Я знаю, что это можно сделать, просто у меня было несколько лет отдыха и я забыл, как это сделать в javascript.

Вот полный код, большое спасибо за помощь заранее!

function loadelectronicsurl(){
var WindowWidth = Ti.Platform.displayCaps.platformWidth; 
var WindowHeight = Ti.Platform.displayCaps.platformHeight;
var xhr = Titanium.Network.createHTTPClient();
xhr.open('GET',electronicsurl);
var data = [];
var WindowWidth = Ti.Platform.displayCaps.platformWidth;

    xhr.onload = function() {
        //Ti.API.info(this.responseText);
        var xml = this.responseXML;
        var channel = xml.documentElement.getElementsByTagName("channel");
        var title = channel.item(0).getElementsByTagName("title").item(0).text;
        win2.title = title;
        var items = xml.documentElement.getElementsByTagName("item");
        for (var i=0;i<items.length;i++) {
            var this_post_title = items.item(i).getElementsByTagName("title").item(0).text;
            var post_link = items.item(i).getElementsByTagName("link").item(0).text;
            var row = Ti.UI.createTableViewRow({height:'auto',width:WindowWidth,top:0,hasChild: false});
            var post_title = Ti.UI.createLabel({
                text: this_post_title,
                textAlign:'left',
                left:0,
                height:40,
                font:{fontFamily:'Arial',fontSize:12},
                width:'auto',
                top:3,
                color: 'black'
            }); 
            row.add(post_title);
            row.link = post_link;
            data.push(row);         
        }
        var tv = Titanium.UI.createTableView({
            data:data,
            top:0,
            width:WindowWidth,
            height:WindowHeight
        });
        win2.add(tv);
        tv.addEventListener('click',function(e) {
            var webwin = Titanium.UI.createWindow({
                url: 'showweb.js',
                backgroundColor: '#fff',
                myurl: e.rowData.link
            });
            tab2.open(webwin);
        });
    };

    xhr.send();

}

1 Ответ

0 голосов
/ 01 марта 2011

Вы можете определить параметры для функции следующим образом:

function someFunc(win, tab){

    win.add();
    tab.open();

}

Вы также можете использовать параметры для динамического доступа к свойствам объекта, например:

function someFunc(win, tab){

    obj.[win](); //To call an object's method
    obj.[tab]; //To access an object's property

}

Вызовите функцию и передайте параметры:

someFunc(someObject, anotherObject);

someObject становится win, а anotherObject становится tab внутри функции.

...