我在做一个垂直滚动的日历。我正在加载初始日期,但是当新的日期被添加到列表中时,它们没有被渲染。
<cdk-virtual-scroll-viewport
class="demo-viewport"
[itemSize]="100"
(onContentScrolled)="handleScrollChange($event)"
>
<calendar-day
*cdkVirtualFor="let day of days; trackBy: trackByFn"
[day]="day"
></calendar-day>
</cdk-virtual-scroll-viewport>
<button (click)="goToToday()">go</button>
我有一个BehaviorSubject
更新天数的服务。我知道天数列表正在更新,但似乎没有检测到变化。
ngOnInit() {
this._daysService.days$.subscribe(days => {
this.days = days;
})
this.watchScroll();
this.handleScrollingUp();
this.handleScrollingDown();
}
如需了解更多信息,StackBlitz回购是公开https://stackblitz.com/edit/material-infinite-calendar
而不是
this.days = days;
做
this.days = [...days];
作品。https://stack blitz . com/edit/material-infinite-calendar-amcapx?file = src/app/calendar/calendar . component . ts
我想通了。
最初,我是通过像这样抓取当前值来添加新天数
let items = this.items$.value;
items.push(newItem);
this.items$.next(items)
显然,这实际上是BehaviorSubject
值的一个变异,因此不会创建一个新的数组来返回,也不会触发更改检测。
我把它改成了
let items = [...this.items$.value];
items.push(newItem);
this.items$.next(items)
一切都很好。
因此,尽管这里的答案是正确的,因为我正在改变原始数组,但我需要的信息是使用改变的版本调用Next()
's当前值不会发出新数组。emit
事件不能保证不变性。
*cdkVirtualFor
只有在您不可变地更新它时才会更新,即您无法在数组初始化后更新它。我们使用扩展运算符来获取您要查找的内容。
检查这个非常简单的stackblitz…这里我使用了两种方法,你可以尝试看看:
addCountryOld
方法通过将对象推送到我们的数组来改变数组,因此呈现的视图不会更新。 < li>
addCountryNew
方法通过spread运算符使用不变性,从而导致渲染视图得到更新。
这是addCountry New的代码:
addCountryNew(){
let newObj = {'name':'stack overflow country', "code":'SO'};
this.myList = [...this.myList, newObj];
}
只是一个简单的问题。 让我们将这段代码作为IE: 是 NgIf 内的内容呈现然后从页面中隐藏,还是角度“知道”此 div 不会显示,因此甚至不渲染其中的内容?
我有一个组件,我想在用户点击后显示/隐藏。 它是这样的: 和 只需将wasPressed属性适当地设置为true或false。我正在使用<代码> 问题是“我的按钮”的“渲染”属性的值。它明确地包括两个方面:解释和显示按钮。 只要始终存在(它只更改它的标签),仅在属性为真时才存在。否则它说: malformedXML:更新期间:找不到解释 我如何解决这个问题? 我不想恢复到在源代码中隐藏元素,所以我
问题内容: 如果我正在渲染而不是,则以下代码有效。 是否可以将玉器文件渲染为部分角度? 问题答案: 是的,有可能。看下面的链接 需要注意的两个重要点是: 代替和 在路由中添加以下内容:(代码用于node中的expressjs) 退出并重新启动节点/快速服务器。
在我的一个项目中,我尝试在表格中显示Angular Components(例如自动完成下拉搜索)。由于我的要求(例如使用ctrl单击多次选择不同的单元格),我决定尝试使用handsontable。 我使用了handsontable渲染器并动态添加组件。 代码看起来像这样 matrix.component.ts 我当前的问题是渲染角度组件的生命周期。 我试过的东西: 什么都不做 尝试过的解决方案:什
问题内容: 在我的Maven项目中,我创建了一个“ index.xhtml”文件。当我构建并运行该项目时,Web浏览器未显示任何内容。当我查看源代码时,仍然可以看到源代码,而不是普通的html标签。 我尝试通过以下方式创建XHTML文件: 选择项目,右键单击New ..并选择Other ..并选择“ Web”类别,然后选择JSF Page。 选择项目,右键单击New ..,然后选择Other ..
我在一个应用程序的前端原型上工作,该应用程序具有给定的JS、React和CoreUI4 React技术栈。我来自Python背景,在网络开发和我给定的技术堆栈方面没有太多经验。当我不得不开始使用钩子时,这一点变得很明显。 问题 我真的不明白为什么它不更新我的和/或不渲染。我需要一个条件渲染,我也使用。 我试图: 从我的主应用程序中传递一个更大的状态,一旦我启动条件逻辑(挂钩规则)就无法工作。 当我