如果结果包含一部分文本,则尝试隐藏变量



我有一个有角度的项目,在我的html中,我想根据控制器是否返回一组包含特定单词的文本,使用[display]标记来显示或隐藏。

例如

<div [display]="!result.name.contains('jim')">

这不起作用,我不知道怎么做。

一点上下文会很有帮助。这是单个页面上的单个div吗?列表中的元素(ngFor)?结果来自服务吗?一个@输入?页面上另一个元素的输出?

[显示]如果我记得是/曾经是AngularJS约定,并且在Angular 2和后来的中被替换为*ngIf

<div *ngIf="condition">Content to render when condition is true.</div>

如果这是一个单独的元素,而不是基于元素的迭代数组(例如,通过*ngFor),我建议将逻辑放入控制器中,并让它返回一个布尔值,您可以将*ngIf条件绑定到。

例如:

<div *ngIf="!isJimInResult()">Content to render when Jim in in result.</div>

isJimInResult():boolean {
if(result.name.contains('jim')) {
return true;
} else {
return false
}
}

如果这是在一个迭代数组中,那么你必须将result.name的行值传递给要计算的函数,但这需要比你在这里提供的更多的项目细节。

一个更好的解决方案是定义一个变量,并绑定到该变量,然后在更新结果时设置它,但同样,这需要更多关于如何获取数据的知识,以便知道何时实现设置/重置布尔值的逻辑。

最新更新