0
我有一个控制器,它使用content
作为基础,然后有另一个变量称为items
这是内容的过滤版本。更新content
时应更新items
。我试图在我的控制器中做这样的事情:镜像控制器内容
updateItems: function() {
var items = this.get('content').filter(this.get('toggleFilter'));
this.set('items', items);
}.observes('toggleFilter', 'content'),
这很好,除了第一次加载。首次浏览页面时,项目为空。我收集这是因为在setupController中它被设置为content
,它仍在等待信息。
我注意到,将观察值设置为content.length
使其工作。然而,这并不理想,部分原因是因为在装入数据时将为每个插入调用updateItems
方法,并且还因为内容可能会更改,但长度可能保持不变。有一个更好的方法吗?
初始加载,从项目如下模型被逐一插入。因此,对于1000个项目组,该功能将被称为1000次。所有内容信息加载完毕后,是否没有办法调用updateItems? – Gevious
Ember runloop足够聪明,可以在一次插入1000个物品的情况下解决这个问题,它不会为每一次添加都执行,它会在第1000个元素后执行,但如果这些物品是在不同时间点添加的,当时会得到执行,您可以通过添加console.log或alert来检查此行为 –
我尝试使用您的属性建议和它的更优雅。它也解决了这个问题。谢谢 – Gevious