使用 ng-if 在 ng-repeat(角度不熟悉)中根据文件扩展名类型显示文本



在这里,我有这样的情况,如果文件扩展名为"pdf","xlsx"和"docx",则为"N",则必须显示文本"Y">

<tr ng-repeat = "file in filedetails">
<td>
    <span ng-if ="(file .filename.substring(file.filename.lastIndexOf('.') + 1) === ('pdf'))">Y</span>
    <span ng-if ="(file.filename.substring(file.filename.lastIndexOf('.') + 1) === ('xlsx'))">Y</span>
    <span ng-if ="(file.filename.substring(file.filename.lastIndexOf('.') + 1) === ('docx'))">Y</span>
    <span ng-if ="(file.filename.substring(file.filename.lastIndexOf('.') + 1) !== (('xlsx') || ('pdf') || ('docx')))">N</span></td></tr>

使用上面的代码,我能够为所有不受支持的文件扩展名显示"N",但对于"pdf"和"docx"。在这种情况下,只有"xlsx"对"N"工作正常(Y 对所有人来说都工作正常(。我怎样才能做到这一点?

我对这个问题还有一个担忧....如果我想显示 N,如果它不是扩展名"xlsx"、"pdf"、"docx"之一,如果它是扩展名"xlsx"、"pdf"、"docx"之一,则还有一个条件并验证file.conversion_status === ("跳过"(并显示 Y 并且扩展名之一为真。

不幸的是:

(('xlsx') || ('pdf') || ('docx')))

。只需计算为"XLSX",您要做的就是检查扩展名是否等于"XLSX"。将扩展的表达式缩短为"ext",您需要测试的是:

ext !== 'xlsx' && ext !== 'pdf' && ext !== 'docx'

此行将无法按预期工作:

(file.filename.substring(file.filename.lastIndexOf('.') + 1) !== (('xlsx') || ('pdf') || ('docx')))

每个 OR (||( 需要 2 个操作数。这将是:

(file.filename.substring(file.filename.lastIndexOf('.') + 1) !== 'xlsx') ||
(file.filename.substring(file.filename.lastIndexOf('.') + 1) !== 'pdf') ||
(file.filename.substring(file.filename.lastIndexOf('.') + 1) !== 'docx')

最新更新