I came across a similar problem when porting my own slide implementation to Angular 2 RC3, which also uses Swiper.
The problem was that the swiper container has already been in the DOM but not rendered when I instantiated the Swiper code. Swiper’s calculations rely on the container’s width which is 0 when the container is not rendered.
My (hacky) solution was to use requestAnimationFrame() until the container’s width is >0 and instantiate Swiper after that.
With the past Angular 2 releases, the DOM elements have already been rendered when Angular calls ngOnInit or ngAfterViewInit. Apparently this has changed in the new version which might be a bug!?
Hope this helps although there might a better ‘more-angular’ solution…