我想开发一个应用程序,它通过JSON从外部数据库获取表单数据。我需要根据这个动态数据创建表单字段及其属性。
在我看来,我需要在Titanium中使用经典方式而不是合金,因为我认为我不能在Alloy中的xml(视图)侧动态添加任何行。我是正确的还是可以在合金中做到这一点?如果是的话,请告诉我如何
答案 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来设置此元素的样式,因此样式完全为空。