2017-06-21 42 views
0

我有一個項目列表,我需要根據項目類型動態創建帶有類和文本的標籤。目前我正在做下列方式:在聚合物中動態創建html標籤

<template is="dom-repeat" items="{{list}}" as="item"> 
    <span class$="[[_customClass(item)]]"> 
    [[_customText(item)]] 
    </span> 
</template> 

這需要兩個功能,基本上具有相同的開關語句,但返回不同的值的定義。是否有更優雅的方式來創建只有一個函數調用的跨度?

+0

你不能返回一個對象,它包含一個函數的className和文本嗎? –

+0

由於@ Mr.7表示你可以返回一個對象,所以你可以像這樣傳遞一個額外的參數給你的函數:'[[_custom(item,'class')]]'[[_custom(item,'text ')]]' – dloeda

+0

但我仍然需要調用兩次函數 –

回答

0
<template is="dom-repeat" items="[[list]]"> 
    <span class$="[[item]]"> 
     [[_customText(item)]] 
    </span> 
    </template> 

項目默認項目,所以你不需要爲=「項」

假設陣列是一個字符串,你可以創建CSS類爲每個字符串值。如果該項目是一個對象,只需轉到[[item.type]]和[[item.text]]。

<template is="dom-repeat" items="[[list]]"> 
    <span class$="[[item.type]]"> 
     [[item.text]] 
    </span> 
    </template> 

在填寫項陣列,我本來散列它與對象的數組,並設置.TYPE的.text作爲屬性,並用我上面寫的。然後你只需要循環一次數組。