Angularjs: пользовательский угловой фильтр ведет к бесконечному циклу

0

В моем приложении Ionic я создал собственный фильтр "раздел" в файле filter.js (см. Ниже).

Я пытаюсь использовать его так, как это в шаблоне, но я получаю ошибку корнеплодов: Ошибка: [$ rootScope: infdig] http://errors.angularjs.org/1.2.25/ $ rootScope/infdig? P0 = 10 & p1 = % 5B% 5B% 22fn% 3... Inder %20Max %20- %20Keely %20Andrew% 5C% 22% 3B %20oldVal% 3A %20undefined% 22% 5D% 5D

Не могли бы вы помочь мне исправить это?

благодаря

template result.html:

<ion-slide-box show-pager="true" does-continue="true" on-slide-changed="slideHasChanged($index)">
            <ion-slide ng-repeat="batch in prodata | partition:8 track by $index">
                <ul>
                    <li ng-repeat="item in batch track by $index">
                        <a class="suggestPro" href="#">
                            <span><img ng-src="img/boards/{{item.imageName}}" /></span>
                            <p class="flex-caption"> {{item.model}} - {{item.name}}</p>
                        </a>
                    </li>
                </ul>
            </ion-slide>
        </ion-slide-box>

app.js:

angular.module('BoardLine', ['ionic', 'ngCookies', 'ui.unique', 'BoardLine.controllers', 'BoardLine.services', 'BoardLine.filters'])

filter.js:

angular.module('BoardLine.filters', [])

.filter('nospace', function() {
    return function (value) {
        return (!value) ? '' : value.replace(/ /g, '');
    };
})

.filter('partition', function() {
    return function(array, size) {
        var newArray = [], i, next;

        for(i = 0; i < array.length; i = next) {
            next = i + size;
            newArray.push(array.slice(i, next));
        }

        return newArray;
    };
});
  • 1
    track by @PankajParkar должен идти после фильтров
  • 0
    Где ошибка?
Показать ещё 5 комментариев
Теги:
ionic-framework
ionic

1 ответ

0

Еще одно решение для достижения этого результата без фильтра "раздела" и с использованием limitTo:

    <ion-slide-box show-pager="true" does-continue="true" on-slide-changed="slideHasChanged($index)">
        <ion-slide ng-repeat="s in [0,1,2,3,4,5,6]">
            <ul>
                <li ng-repeat="item in prodata | matchingProBrand:computed.proName:computed.proBrand | limitTo:s*8+8  | limitTo:-8">
                    <a class="suggestPro" ng-click="launchComputeService(item.id)">
                        <span><img ng-src={{imagesUrls[item.imageName]}} /></span>
                        <p class="flex-caption"> {{item.model}} - {{item.name}}</p>
                    </a>
                </li>
            </ul>   
        </ion-slide>

    </ion-slide-box>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню