Sencha Touch 2;在两个函数之间传递变量

时间:2013-02-11 23:33:04

标签: javascript sencha-touch-2

我有一份同事名单(List.js) 点击列表项目发送同事的详细信息(Detail.js)。其中一个字段是{skype}。从商店检索Skype地址并显示良好。

在详情屏幕中,我有一个按钮'给我打电话'。目的是与同事开始Skype通话。

我添加了一个功能

onOpenSkypeTap: function () {
    open('skype:{skype}?call');
}

问题是:skype用{skype}开始一个电话,而不是同事的skype名字。 我想我需要在控制器文件中解决它,但我的尝试并不成功: 控制器文件的一部分:

oncolleagueItemTap: function(list, idx, el, record) {
    this.getcolleagueContainer().push(this.colleague);
    this.colleague.setRecord(record);
    var skypename = record.get ('skype')
    console.log(skypename);     
},

onOpenSkype: function () {
    console.log(skypename);
    open('skype:skypename?call');
}

错误消息:未捕获的ReferenceError:未定义skypename

可能是因为var skypename仅为oncolleagueItemTap函数定义

是否可以将此变量传递给onOpenSKype函数? 还是有另一种解决方案吗?

1 个答案:

答案 0 :(得分:0)

您可以将skypename设置为详细信息页面中的配置属性之一,并为此页面提供ID。点按按钮即可执行此操作

var name = Ext.getCmp("colleguePageId").config.skypename

OR

var name = Ext.getCmp("colleguePageId").getRecord().get('skype')

您可以随时随地使用

open('skype:'+name+'?call');