2 回答

TA貢獻1821條經驗 獲得超6個贊
了解模板代碼的作用很重要:它迭代并elements.Event.Texts調用textSelector每個元素。只要返回 true,就會創建一個元素。textSelectorp
我會建議一種不同的方法。只調用一次函數,因為您只需要一個值。
<p *ngIf="textSelector(elements.Event.Texts)">{{bestText}}</p>
這就是我編寫函數的方式。我會使用一個數組來設置優先級,所以它更易于維護。
const order = ["VeryShort", "Short", "Medium"];
textSelector(items: any[]) {
let bestItem;
for (const item of items) {
if (item.Type === order[0]) {
this.bestText = item.Value;
return true;
}
if (!bestItem) {
bestItem = item;
} else if (order.indexOf(item.Type) < order.indexOf(bestItem.Type)) {
bestItem = item;
}
}
if (!bestItem) {
return false;
}
this.bestText = bestItem.Value;
return true;
}
如果您有任何問題或需要解釋,請告訴我。

TA貢獻1845條經驗 獲得超8個贊
試試這個。它可能有效
textSelector(item: any) {
if (item.Type === 'VeryShort') {
this.bestText = item.Value;
return true;
} else if (item.Type === 'Short') {
this.bestText = item.Value;
return true;
} else if (item.Type === 'Medium') {
this.bestText = item.Value;
return true;
} else {
return false;
}
}
添加回答
舉報