当前位置: 首页 > 知识库问答 >
问题:

Angular 2根据管道结果添加样式

楚知
2023-03-14

我不确定,如果这是可能的。

<span class="nav-label second-level-text" style="margin-left: 10px;">
{{partner.name}}
    <span class="badge"
      *ngIf="unreadConversations.length > 0 | unreadConversationForPartner : [unreadConversations,partner.id]">
    {{unreadConversations.length | unreadConversationForPartner : [unreadConversations,partner.id]}}
    </span>
</span>

我这里有跨度。我正在将过滤器应用于 *ngIf,并显示返回过滤器的值(即计数)

如果从管道返回的计数大于0,我想显示一个样式,如果不是,就不显示样式。不过,我可以通过< code>*ngIf和Filter来实现这一点,但如果< code>Filter的值发生变化,则< code>*ngIf不会发生变化。

例如。我在数组中有两个项目。

项目1:长度为1,它显示跨度并完成其工作。。。

项目 2:开始时长度为 0,它不显示(这是正确的行为),但过滤器值发生变化,但随后 *ngIf 不再被调用。

unreadConversationFor合作伙伴管道

transform(value: any, ...args: any[]): any {
        var count = 0;
        var partnerId = args[0][1];
        var conversations = args[0][0];
        conversations.forEach(element => {
            if(element.partnerId == partnerId) count++
        });
        return count;
    }

如果提供的信息不够或不清楚,请告诉我。

共有1个答案

经炜
2023-03-14

您可以将用作前段时间引入的

*ngIf="unreadConversations.length > 0 | unreadConversationForPartner : [unreadConversations,partner.id] as result"

然后在其他指令或绑定中使用

[ngStyle]="{backgroundColor: result >= 5 ? 'red' : 'blue'}"

另见https://angular.io/api/common/NgIf#storing-conditional-result-in-a-variable

 类似资料:
  • 问题内容: 我正在设置一个基本的角度应用程序,并且试图在视图中添加一些CSS。这是我的组件之一的示例: 现在,从服务器请求了.css文件,当我检查页面源代码时,可以看到它已添加到头部。但是发生了一些奇怪的事情: 从此文件生成: 有人可以解释_ngcontent-mav标记的来源,代表什么以及如何摆脱它吗? 我认为这就是为什么我的样式未应用到模板的原因。 如果您需要有关应用程序结构的更多信息,请签出

  • 在这个Plunker中,我有一个模板: 这是组件类: 这确实有效,我确实在输出中看到了。但是我想使用管道。 因此,我希望我的模板是: 但是有一个问题。 不是数组。它是一个具有prop的对象,该属性是必需的数组。 我不能这样做: 我创建了另一个plunker,它只返回一个数组: 而且它可以与一起工作。 问题: 看看我的第一个代码,我如何使用异步管道,同时仍然解析一个对象而不是一个数组?

  • 我想在过滤器返回空数组时显示一条消息,例如“未找到结果” 这是我的ngFor列表,它有一个过滤器 如果没有过滤器,这很容易,但是因为有过滤器,我不知道怎么说过滤器没有返回结果。 这是我的过滤器: 这一切都有效,但我只需要向用户显示,过滤器没有返回结果,而是返回消息,而不是空屏幕。

  • 本文向大家介绍Windows Powershell导出管道结果,包括了Windows Powershell导出管道结果的使用技巧和注意事项,需要的朋友参考一下 可以将管道的结果转换成文本输出,默认是Out-Default。可以通过Get-Command -verb out查看Powershell都有哪些输出的命令。 吸收输出结果 有的命令无论执行成功或失败都会有输出,有时不需要这些输出时可以使用

  • 我有一个数据集 是否有任何方法可以确保,如果不同的的下一个值小于中的值,那么它应该在 列中执行加法。 下面是我期待的结果 所以基本上我寻求一个解决方案,对于每个唯一的< code>field_pointpath,如果它遇到一个小于前一个值的值,那么它应该将前一个值与下一个值相加。 if <代码>值[i 1]