钛经典或合金动态表格

时间:2014-02-07 08:17:14

标签: forms appcelerator titanium-mobile titanium-alloy

我想开发一个应用程序,它通过JSON从外部数据库获取表单数据。我需要根据这个动态数据创建表单字段及其属性。

在我看来,我需要在Titanium中使用经典方式而不是合金,因为我认为我不能在Alloy中的xml(视图)侧动态添加任何行。我是正确的还是可以在合金中做到这一点?如果是的话,请告诉我如何

1 个答案:

答案 0 :(得分:3)

这可以做到。使用这个小部件https://github.com/albinotonnina/it.numidia.gridWidget我能够弄清楚如何在Alloy中创建动态内容。与此小部件中使用的方法类似,我为每个要支持的项目都有一个控制器。我创建了一个textfield,textarea,label等。它允许我仍然使用Alloy样式并动态地将元素添加到我的视图中。

以下是我的文本字段控制器的示例:

XML

<Alloy>
    <TextField id="textfield"/>
</Alloy> 

JS

function applyProperties(_props){
    var apply = {};

    _.extend(apply, _.pick(_props, 'left', 'value', 'textAlign', 'font', 'color', 'shadowOff'));
    // alert(apply);
    $.textfield.applyProperties(apply);
}

exports.getContent = function(){
    return $.textfield.value;
};
exports.setContent = function(val){
    $.textfield.value = val;
};


if(arguments[0]){
    applyProperties(arguments[0]);
}

exports.applyProperties = applyProperties;

由于我使用app.tss来设置此元素的样式,因此样式完全为空。