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;
}
}
添加回答
举报