Titanium studio变量不会在视图上发生变化

时间:2014-09-29 13:59:12

标签: javascript variables titanium

我是Titanium的新手,我正在尝试使用以下代码将存储在我的Titanium属性中的变量显示到视图页面中:

var display = Ti.UI.createLabel({
    text : storedVariable,
    color : 'black',
    font : {fontSize:12},
    height : 15,
    width : 250,
    top : '10%',
    left : '10%',
    textAlign : 'center'
});

我遇到的问题是我在另一个页面中更改storedVarible,但只有在我重新启动应用时才会在显示中更改。

我需要在变更后立即更新变量。我搜索了Titanium页面和堆栈交换,但找不到任何答案。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

显然,storedVariable在其创建时被传递给对象/实例:也就是说,它的值仅在您创建UI Label实例display时使用。因此,如果您在创建display.text之后只给storedVariable一个新值,display就不会实时更改。

你在做什么与

类似
var b = 10;

var a = b;

b = 5;
即使您将5分配给a

b仍然是10。

您需要更改storedVariable的值,而不是更改display.text的值。

答案 1 :(得分:0)

这是因为Ti.UI.createLabel()只被调用一次。要更新文本值,您可以创建一个新函数来重置标签的文本属性:

function updateLabelText(newText){
    display.text = newText;
}

然后每次storedVariable更改时,您都可以致电updateLabelText(storedVariable);