我有一个问题隐藏和显示一个元素取决于一个布尔变量在角2。
这是div要显示和隐藏的代码:
<div *ngIf="edited==true" class="alert alert-success alert-dismissible fade in" role="alert">
<strong>List Saved!</strong> Your changes has been saved.
</div>
变量已“编辑”,并存储在我的组件中:
export class AppComponent implements OnInit{
(...)
public edited = false;
(...)
saveTodos(): void {
//show box msg
this.edited = true;
//wait 3 Seconds and hide
setTimeout(function() {
this.edited = false;
console.log(this.edited);
}, 3000);
}
}
元素是隐藏的,当saveTodos函数启动时,会显示元素,但3秒钟后,即使变量返回为false,元素也不会隐藏。为什么?
如果不想删除HTMLDOM元素,请使用*ngIf。
否则,请使用以下命令:
<div [style.visibility]="(numberOfUnreadAlerts == 0) ? 'hidden' : 'visible' ">
COUNTER: {{numberOfUnreadAlerts}}
</div>
您应该使用*ngIf指令
<div *ngIf="edited" class="alert alert-success box-msg" role="alert">
<strong>List Saved!</strong> Your changes has been saved.
</div>
export class AppComponent implements OnInit{
(...)
public edited = false;
(...)
saveTodos(): void {
//show box msg
this.edited = true;
//wait 3 Seconds and hide
setTimeout(function() {
this.edited = false;
console.log(this.edited);
}.bind(this), 3000);
}
}
更新:当您在超时回调中时,您缺少对外部范围的引用。
所以添加. bind(this),就像我在上面添加的一样
问:编辑是一个全局变量。你在一个*ngFor循环中的方法是什么?-Blauhirn
答:我将编辑作为属性添加到我正在迭代的对象中。
<div *ngFor="let obj of listOfObjects" *ngIf="obj.edited" class="alert alert-success box-msg" role="alert">
<strong>List Saved!</strong> Your changes has been saved.
</div>
export class AppComponent implements OnInit{
public listOfObjects = [
{
name : 'obj - 1',
edit : false
},
{
name : 'obj - 2',
edit : false
},
{
name : 'obj - 2',
edit : false
}
];
saveTodos(): void {
//show box msg
this.edited = true;
//wait 3 Seconds and hide
setTimeout(function() {
this.edited = false;
console.log(this.edited);
}.bind(this), 3000);
}
}
根据您想要实现的目标,有两种选择:
>
<div [hidden]="!edited" class="alert alert-success box-msg" role="alert">
<strong>List Saved!</strong> Your changes has been saved.
</div>
可以使用ngIf control指令添加或删除元素。这与hidden指令不同,因为它不显示/隐藏元素,而是从DOM中添加/删除元素。可以释放元素的未保存数据。对于已取消的编辑组件,它可能是更好的选择。
<div *ngIf="edited" class="alert alert-success box-msg" role="alert">
<strong>List Saved!</strong> Your changes has been saved.
</div>
对于您来说,3秒后的更改问题可能是由于与setTimeout不兼容。您是否包含angular2多边形填充。你的页面中有js库吗?
我有两个按钮导航栏。 当单击div#toggle-menu时,它使div#sidebar-mobile-wrapper显示。 当我点击div#toggle-function时,它会显示div#right-content-mobile。 都奏效了。但现在我想,一次只能显示一个div。所以当我点击#toggle-menu时,如果div#right-content-mobile是可见的,它将被隐藏和si
问题内容: 按下后如何隐藏“编辑”链接?当我按下编辑键时,是否还可以隐藏“ lorem ipsum”文本? 问题答案:
本文向大家介绍jQuery控制元素隐藏和显示,包括了jQuery控制元素隐藏和显示的使用技巧和注意事项,需要的朋友参考一下 1、jQuery隐藏和显示效果 通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: 2、jQuery淡入淡出效果 通过 jQuery,您可以实现元素的淡入淡出效果。 jQuery 拥有下面四种 fade 方法: fadeIn()
我正在使用Ionic 3 Angular作为网站。并且有 2 个小点将整个视图从视图 1 更改为视图 2。基本上要做到这一点,我只是使用 *ngIf 进行离子行的显示隐藏,如下所示 但是整体过渡非常快。当我点击按钮从视图1转到视图2时,我想把它显示为滑动效果。请指教。 我认为ionic和angular都有某种动画功能,但我不确定在这种情况下哪个是正确的,以及如何使用它。
本文向大家介绍如何使用animate(),隐藏和显示元素?,包括了如何使用animate(),隐藏和显示元素?的使用技巧和注意事项,需要的朋友参考一下 使用和方法来隐藏和显示元素。 示例 您可以尝试运行以下代码,以了解如何使用方法来隐藏和显示元素:
我对使用Angular做事情还很陌生,所以我可能会忽略一些事情: 我正在用*ngfor生成多个div行。每一行都有一个切换按钮和一个隐藏的子DIV(子DIV也可以有隐藏的子DIV)。 我想尝试和做的是在点击切换按钮时独立地显示和隐藏子div(同时切换按钮图标也应该改变)。我设法使它工作,要么打开所有的div在同一时间,或当点击一行-切换,它将打开子div。 但当我点击另一个时,它会关闭之前点击的一