Emberjs - 在模板中插入新元素时的事件

时间:2014-06-12 11:13:08

标签: ember.js

我的控制器中有一个函数,它异步刷新我的模型以下载图库的图像。

我需要触发一个将我的图像放在列中的功能(每列3个图像),但是这个功能只在我加载页面时触发一次,当然此时只加载了一个图像,因为事件是下载速度太快了。

每次我加载新图像时,是否有任何可以用来调用此函数的事件? 是否可以检测DOM是否已更新?

我正在使用{{#each img in gallery}}来显示我的图片。

[edit]我的对象是这样的:

{
    images: [
        0: "url1",
        1: "url2",
        3: "url3"
    ]
}

但是当它下载图像时,它会用这样的对象替换图像数组的每个元素:

{
    images: [
        0: {
            key: "key1",
            base64: "base64_1"
        },
        1: {
            key: "key2",
            base64: "base64_2"
        },
    ]
}

1 个答案:

答案 0 :(得分:0)

设置一个能够检测gallery变化的观察者。在您的控制器中:

galleryChanged: function() {
    // Perform logic here
}.observes('gallery.@each')

这应该适用于大多数情况。如果您需要更高效的东西,可以尝试使用arrayComputed功能。但它有点复杂。