Jquery 角2同位素

Jquery 角2同位素,jquery,angular,jquery-isotope,observable,Jquery,Angular,Jquery Isotope,Observable,如何将同位素jquety lib与angular2和可观测值结合使用。当我从服务器获取数据时,我想应用同位素。目前我有: import {Component} from "angular2/core"; import {Heroes} from "./heroes"; import {ApiclientService} from "./apiclient.service"; @Component({ templateUrl: 'heroes-list.html', provid

如何将同位素jquety lib与angular2和可观测值结合使用。当我从服务器获取数据时,我想应用同位素。目前我有:

import {Component} from "angular2/core";
import {Heroes} from "./heroes";
import {ApiclientService} from "./apiclient.service";

@Component({
    templateUrl: 'heroes-list.html',
    providers: [ApiclientService]
})

export class HeroesComponent {

    public Heroes: Heroes[] = [];

    constructor(private _apiclientService: ApiclientService) {
        this.getHeroes();
    }

    getHeroes() {
        this._apiclientService.getHeroes()
                 .subscribe(
                    heroes => this.heroes = heroes,
                    error => this.errorMessage = <any>error);


    }

    ngAfterViewInit() {
        $(document).ready(function() {
            $('.heroes-grid').isotope({
                itemSelector: '.heroes-item'
            });
        });
    }
}
从“angular2/core”导入{Component};
从“/HERONES”导入{HERONES};
从“/apiclient.service”导入{ApiclientService};
@组成部分({
templateUrl:'英雄列表.html',
提供者:[ApiclientService]
})
导出类HeroesComponent{
公众英雄:英雄[]=[];
构造函数(专用apiclientService:apiclientService){
这个。getheros();
}
getHeroes(){
这是.\u apiclientService.getheromes()
.订阅(
英雄=>这个。英雄=英雄,
error=>this.errorMessage=error);
}
ngAfterViewInit(){
$(文档).ready(函数(){
$('.heroes网格')。同位素({
项目选择器:'.heroes项目'
});
});
}
}

这不起作用,因为jquery是在可观察的subscribe方法返回一些数据之前解析的。如果我调用同位素后,观察到的是解决,也没有成功。处理这种情况的最佳方法是什么。如何将jquery插件和Observable结合起来?

如果您仍然无法解决这个问题,一个问题可能是您需要将同位素初始化绑定到window onLoad事件,而不是document onready,以确保所有图像都已加载

此外,在heroes服务订阅处理程序中,您可能需要调用同位素插入方法,以使同位素容器了解新元素:

var newItems = $('.blog-masonry-item');
$('.blog-masonry-container').isotope('insert', newItems);