0

我发现了 2 个与 Alloy 升级到 1.8.3 相关的问题,我认为这两个问题都是关于转换和数据绑定的另一个错误的一部分,https://jira.appcelerator.org/browse/ALOY-1477

我不想只是将其报告为错误,以防它归结为我正在做的事情?

第一个,我最初是在列表的转换中引用alloy_id,但开始产生一个错误,提示找不到alloy_id,将其更改为$model 有效,但不确定我们现在应该如何做或它的一部分上述错误?

xml代码(部分)

<TableViewRow id="categoriesRow" UCATID="{UCATID}" 
            ParentID="{ParentID}" CategoryID="{CategoryID}" catName=    {catName}" 
            model="$model" hasDetail="{hasDetail}">
        <!-- TableViewRow id="categoriesRow" UCATID="{UCATID}" 
            ParentID="{ParentID}" CategoryID="{CategoryID}" catName="{catName}" 
            model="{alloy_id}" hasDetail="{hasChildren}"-->
            <Label id="rowTitle">{CategoryName}</Label>
        </TableViewRow>

第二个是将 hasDetail 设置为 true 或 false(布尔值)以显示表格行的更多详细信息,这适用于 iOS 应用程序,目前在所有版本中都可以正常显示小图标,但是在升级之前,将引用验证为布尔值有效,但是现在您必须将其引用为字符串,这不可能吗?

控制器.js 代码

function transformFunction(model) {
   var transform = model.toJSON();
   transform.catName = transform.CategoryName;
   transform.hasDetail = transform.hasChildren == "0" ? false : true;
   return transform;
}

$.winProdCats.addEventListener('click', function(e) {
   Ti.API.info('e.row.hasDetail: ' + e.row.hasDetail );
   var iHaveBoolean = e.row.hasDetail;
   Ti.API.info('iHaveBoolean: ' + iHaveBoolean );
  //if(e.row.hasDetail){ //this don't work as a boolean anymore only as a string
    if(iHaveBoolean == "true"){
      parentID = e.row.CategoryID;
      getData();
      filterFunction(library);
      updateUI();
    } else {
      Ti.App.fireEvent('app:products:category:selected', {
          UCATID : e.row.UCATID,
          catName : e.row.catName,
          ParentID : e.row.ParentID,
          CategoryID : e.row.CategoryID
      });
      Alloy.Globals.navGroup.closeWindow($.winProdCats);
    }
});
4

1 回答 1

0

找不到alloy_id的错误

这是ALOY-1477,固定在合金 1.8.4 中

//if(e.row.hasDetail){ //this don't work as a boolean anymore only as a string

这是ALOY-1480,下周将与 Alloy 1.8.x 合并,4 月底随 AppC CLI 5.3.0 一起发布

于 2016-04-01T08:10:54.187 回答