2014-10-04 53 views
0

伙计们我遇到了问题。SAPUI5 - 如何绑定表中子列表的正确属性?

我有一个表格的页面,所有的数据绑定好。但不是桌子。

我的目标是:

this.getView().getModel('newExpense').setData({ 
    desiredPaymentDate: new Date(), 
    isAdvancedPayment: false, 
    expenseItens: [ 
    {expenseType: 'tipoteste', 
     nfnumber: 'nf123456', 
     date: new Date(), 
     value: '1345.43' 
    }, 
    {expenseType: 'tipoteste2', nfnumber: 'nf123453'}, 
    {expenseType: 'tipoteste3', nfnumber: 'nf123454'} 
    ] 
}); 

所以我的形式,一切正常,头字段(desiredPaymentDate和isAdvancedPayment),但我想要绑定我itens在这样的表:

oExpenseItensTable.bindItems('newExpense>/expenseItens', 
     new sap.m.ColumnListItem({ 
      cells: [ 
       new sap.m.Input({ 
        value: '{expenseItens>/expenseType}', 
        type: 'Text' 
       }), 
       new sap.m.Input({ 
        value: '{>/nfnumber}', 
        type: 'Text' 
       }), 
       new sap.m.Input({ 
        value: '{/expenseItens>/date}', 
        type: 'Text' 
       }), 
       new sap.m.Input({ 
        value: '{/expenseItens/value}', 
        type: 'Text' 
       }), 
       new sap.m.Button({ 
        icon: 'sap-icon://delete', 
        tooltip: 'Remover item de despesa', 
        press: oController.removeExpenseItem 
       }) 
      ] 
     }) 
    ); 

而我几乎在那里...我尝试每种类型的字段绑定...我试过{nfnumber},{/ nfnumber},{>/nfnumber},{expenseItens>/nfnumber}, {/ expenseItens> nfnumber},{Nfnumber}。但没有什么作品...

PS:因为我在费用收集有三个对象,表中有三个空行,但所有的值都是空的。所以我认为绑定正在识别数组,但它不适用于对象的属性绑定。

任何人都知道如何正确的模式?

回答

0

您应该使用{newExpense>nfNumber},没有前面的斜杠。 因为绑定表项目在expenseItems中,所以子节点属性应该被绑定到相对到这个节点,即没有斜线。

0

我相信你的代码应该是这样的 oExpenseItensTable.bindItems( 'newExpense>/expenseItens',

new sap.m.ColumnListItem({ 
     cells: [ 
      new sap.m.Input({ 
       value: '{newExpense>expenseType}', 
       type: 'Text' 
      }), 
      new sap.m.Input({ 
       value: '{newExpense>nfnumber}', 
       type: 'Text' 
      }), 
      new sap.m.Input({ 
       value: '{newExpense>date}', 
       type: 'Text' 
      }), 
      new sap.m.Input({ 
       value: '{newExpense>value}', 
       type: 'Text' 
      }), 
      new sap.m.Button({ 
       icon: 'sap-icon://delete', 
       tooltip: 'Remover item de despesa', 
       press: oController.removeExpenseItem 
      }) 
     ] 
    }) 
);