Titanium - 在单独的js中创建tableview行

时间:2015-08-07 08:15:20

标签: javascript ios uitableview titanium-mobile titanium-alloy

我想在名为TableViewRow的单独js中创建disponibleRow.js,但它不起作用。我无法找到错误。这是错误:

  

" undefined不是一个对象(评估' t.disponibleRow.add')";

listadoCuponesVC.js

var disponibleRow = Alloy.createController('Rows/disponibleRow', cuponAux).getView();
Ti.API.debug("row: " + disponibleRow);

disponibleRow.addEventListener('click', function(e){
    Ti.API.debug('row clicked: ' + e.rowData.value);
    Alloy.createController('codigoVC', cuponAux).getView();
});

disponibles.push(disponibleRow);

disponibleRow.js

var fecha =  Titanium.UI.createLabel({
    text: args.get('date'),
    font:{fontSize:12,fontWeight:'light'},
    width:'auto',
    textAlign:'left',
    color: '#72828c',
    bottom:2,
    left:45,
    height:12
});

var puntos =  Titanium.UI.createImageView({
    image:"/images/puntos_azules.png",
    width:16,
    height:16,
    right:10
});

$.disponibleRow.add(fecha);
$.disponibleRow.add(puntos);

disponibleRow.xml

<Alloy>
    <TableViewRow height="65" id="disponibleRow">
    </TableViewRow>
</Alloy>

修改

现在我已经解决了这个错误,但是Alloy.createController返回了未定义的对象,我不知道为什么。

编辑2:

var disponibleRow = Alloy.createController('Rows/disponibleRow', cuponAux).getView(); 

此行返回undefindet .getView()是问题所在,但我不知道出了什么问题。

1 个答案:

答案 0 :(得分:0)

创建控制器时,应将参数对象作为第二个参数传递,否则将其留空。那么什么是cuponAux?

带参数的示例:

var disponibleRow = Alloy.createController('Rows/disponibleRow', {arg1:"This is an argument"}).getView();

没有参数的示例:

var disponibleRow = Alloy.createController('Rows/disponibleRow').getView();