[英]Create dynamic number of rows from xml appcelerator ios
我已经创建了如下的xml文件:
//cityState.xml
<Alloy>
<Window id="cityStateMgWin">
<TableView id="cityAndStatesTableView" >
<TableViewRow id="cityStatesRow" ></TableViewRow>
</TableView>
</Window>
//在cityState.js中
我正在尝试使用以下代码动态创建状态行。
for (var i = 0; i < cityAndStatesListJSONData.length; i++) {
$.cityAndStatesTableView.appendRow(Alloy.createController('cityStatesRow', {title : cityAndStatesListJSONData[cityStates].cityState}).getView());
}
当我运行以下错误时,请帮助我
message = "Object is not a constructor (evaluating 'new (require(\"alloy/controllers/\" + name))(args)')";
[ERROR] : stack = "createController\nonload";
将ui元素从xml文件获取到控制器并创建动态行数是否有任何错误。
提前致谢。
几个建议。
underscore
可用 因此,通过这种方式遍历数据更加容易:
_.each(cityAndStatesListJSONData, function(cityAndState){
});
接下来,为您的行创建一个控制器cityStatesRow
。 应该看起来像这样
该控制器的JS文件:
if ($.args.data.labelProp){
$.myLabel.text = $.args.title;
}
您可以根据需要选择任意数量的项目,图像,标签等来执行此操作。
在_.each
循环中,您将要创建控制器并将数据传递给它:
var controller = Alloy.createController('cityStatesRow', {title : cityAndState.cityState});
现在将其附加到您的TableView
$.cityAndStatesTableView.appendRow(controller.getView());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.