2017-06-06 80 views
0

我在SAPUI5應用一個JSON模式,我想將它綁定到一個表。我已經有了表格和項目:讓我們說3列和3行。行沒有字段名綁定到表

<table> 
<columns> 
<column></column><column></column><column></column> 
</columns> 
<items> <ColumnListItem> <cells></cells><cells></cells><cells></cells> 
</ColumnListItem> 
<ColumnListItem> <cells></cells><cells></cells><cells></cells> 
</ColumnListItem> 
<ColumnListItem> <cells></cells><cells></cells><cells></cells> 
</ColumnListItem> 
</items> 
</table> 

我想dinamically綁定,而不必指定文本=「{/場}」,因爲我的JSON有3個數組是去到每1行的字段名是不一樣的。這可能嗎 ?

例如:

var data = { 
0: [ {firstname:"AA", lastname: "BB", Phone: "123"}, ], 
1: [ {firstnameParent:"AB", lastnameParent: "BC", Phone: "456"},], 
2: [ {firstnameGtParent:"ABC", lastnameGtParent: "CC", Phone: "555"},]} 

現在,我將針對每個小區 文本= 「{/ 0 /姓名}」 文本= 「{/ 0 /姓氏}」 文本=「{/ 0 /電話}」 和下一行 文本= 「{/ 1/firstnameParent}」 文本= 「{/ 1/lastnameParent}」 文本= 「{/ 1 /電話}」 但例如有3個細胞和,如果我有這聽起來不像是個好主意。

可能嗎?綁定而不指定字段名?我嘗試過不同的選擇,但沒有任何成功。

預計表輸出

col1 | col2 | col3 
AA | BB | 123 
AB | BC | 456 
ABC | CC | 555 
+0

關於使用更爲通用的數據結構如何?我將發言權不是不可能 – Marc

+0

結構是從外部web服務,我不能修改它 – lorenag83

+0

很好,但你可以將模型轉換成一個更好的模型。畢竟它只是JSON – Marc

回答

0

如果數據真的看起來像你的例子中,你可以用格式化

誘騙

綁定你的行爲遵循

items="{'/'}" 

你的細胞結合如下

text="{ path: '', formatter: 'formatFirstname' }" 
text="{ path: '', formatter: 'formatLastname' }" 
text="{phone}" 

,並添加格式化到你的控制器

function formatFirstname(obj) { 
    for (let v in obj) { 
     if(obj.hasOwnProperty(v) && v.startsWith('firstname')) { 
      return obj[v] 
     } 
    } 
} 

function formatLastname(obj) { 
    for (let v in obj) { 
     if(obj.hasOwnProperty(v) && v.startsWith('lastname')) { 
      return obj[v] 
     } 
    } 
} 

(代碼未測試) 你有這個想法?這應該給你結果你期望