gpt4 book ai didi

ios - 从 xml appcelerator ios 创建动态行数

转载 作者:行者123 更新时间:2023-11-29 00:48:01 24 4
gpt4 key购买 nike

我已经创建了如下的 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 文件获取到 Controller 并创建动态行数是否有任何错误。

提前致谢。

最佳答案

一些建议。

  1. 你有 underscore 在 Alloy 中可用
  2. 不能根据ID创建控制人,需要是实际控制人。

所以...通过这种方式循环遍历数据会更容易:

_.each(cityAndStatesListJSONData, function(cityAndState){

});

接下来,为您的行创建一个 Controller cityStatesRow。应该看起来像这样

该 Controller 的JS文件:

if ($.args.data.labelProp){
$.myLabel.text = $.args.title;
}

您可以根据需要使用任意数量的项目、图像、标签等来执行此操作。行中您想要的任何内容。

_.each 循环中,您需要创建 Controller 并将数据传递给它:

 var controller = Alloy.createController('cityStatesRow', {title : cityAndState.cityState});

现在将其附加到您的 TableView

$.cityAndStatesTableView.appendRow(controller.getView());

关于ios - 从 xml appcelerator ios 创建动态行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38432767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com