【发布时间】:2014-02-07 22:40:36
【问题描述】:
我想开发一个应用程序,它通过 JSON 从外部数据库获取表单数据。我需要根据这些动态数据创建表单字段及其属性。
在我看来,我需要在 Titanium 中使用经典方式而不是合金,因为我认为我无法在合金的 xml(视图)端动态添加任何行。我是正确的还是也可以在合金中做到这一点?如果可以,请告诉我怎么做
【问题讨论】:
标签: forms appcelerator titanium-mobile titanium-alloy
我想开发一个应用程序,它通过 JSON 从外部数据库获取表单数据。我需要根据这些动态数据创建表单字段及其属性。
在我看来,我需要在 Titanium 中使用经典方式而不是合金,因为我认为我无法在合金的 xml(视图)端动态添加任何行。我是正确的还是也可以在合金中做到这一点?如果可以,请告诉我怎么做
【问题讨论】:
标签: forms appcelerator titanium-mobile titanium-alloy
这是可以做到的。使用这个小部件https://github.com/albinotonnina/it.numidia.gridWidget 我能够弄清楚如何在 Alloy 中创建动态内容。与此小部件中使用的方法类似,我为要支持的每个项目都有一个控制器。我创建了一个文本字段、文本区域、标签等。它允许我仍然使用 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 来设置此元素的样式。
【讨论】: