我添加了 <ion-content>
一个ionScroll事件,该事件触发方法 foo()
,并在 <button ion-button>
点击事件中触发 foo()
. 在我的模板中,我添加了一个示例 {{ x }}
, foo()
方法增加了 x
.
单击按钮会刷新视图,以便显示新值 . 滚动没有 . 如果我添加一个 console.log
,这将打印 .
如果我将fokus设置为某个元素(如文本框或其他内容),则视图会刷新并显示 x
的新值 .
有人知道为什么?
1 回答
这是因为非常有趣和强大的东西叫 Zones . 如果这个概念对您而言是新的,请参阅here和here以获得更好的解释 .
你可以在那里看到,
这就是滚动时视图没有被更新的原因,但是当你触摸页面的任何元素时它就会被更新(因为它是用户事件) .
为了解决这个问题,其中一个选择是让Angular知道它需要知道你将要做的一些改变,因为事情可能需要更新 . 您可以通过在区域内运行一些代码(更新
x
属性的代码)来实现,如下所示: