Ionic ng-repeat Isotope partially doesn't work

I based my Ionic list on this jsFiddle. But something went wrong. Directive gains 'isotope' class to the container, but does nothing with items. Items are initially loaded from local storage and then updated by ajax request. Here's code sample:

.directive('isoRepeat', function () {
    return {
        scope: true,
        templateUrl: 'templates/partials/item.html',

        link: function (scope, element, attrs) {
            var options = {
                itemSelector: 'ion-item', // tried class selectors as well
                layoutMode: 'masonry'
            };
            element = $(element);
            element.isotope(options);
            scope.$watch('scope.items', function (newVal, oldVal) {
                element.isotope('reloadItems');
            }, true);


        }
    };
})

Main template:

<ion-view hide-nav-bar="true">
<div class="bar bar-header bar-assertive" style="height: 20px;"></div>
<ion-content class="padding has-footer">
    <ion-list class="wine-list" data-iso-repeat>
    </ion-list>
</ion-content>

Item template:

<ion-item ng-repeat="item in items"  class="item">
<div class="item-block">
    <img ng-src="{{item.img}}">
</div>
<div ng-click="menu($event)" class="target"></div>
<div class="options" >
    <div class="options-block">
        <div >
            <a href="url"
               class="recipe balanced-bg">
                link
                <div class="more">more</div>
            </a>
            <a href="url2" class="sheet assertive-bg"
               >
                link2
            </a>
        </div>
    </div>
    <!--<div ng-click="menuClose($event)" class="close button button-small button-dark icon ion-close"></div>-->
</div>