Несколько вызовов grid.appScope при использовании в CellTemplate

#angularjs

#angularjs

Вопрос:

Я пытаюсь передать идентификатор и получить соответствующие данные с помощью вызова веб-api. Я передаю идентификатор через шаблон ячейки ng-grid, но продолжаю получать ошибку:

достигнуто 10 итераций digest(). Прерывание! Наблюдатели были запущены в последних 5 итерациях: []

После этого экран перестает отвечать на запросы. Я просмотрел эту ссылку здесь: https://github.com/angular-ui/ui-grid/issues/3753 , но никакой помощи. У меня всего 4 записи, которые нужно извлечь, но они переходят в бесконечный цикл!

Ниже приведен мой код:-

часть моего контроллера:-

 $scope.callContactService = function (creatorId) {
            var CreatorName = "";
            strFactory.getById(creatorId).then(function (currentUser) {
                CreatorName = currentUser.Result.FirstName   " "   currentUser.Result.LastName;
                $scope.operationTasks.CreatorName = CreatorName;

            });
            return $scope.operationTasks.CreatorName;
        };

        $scope.gridViewMyTasks = {
            enablePaginationControls: false,
            enableGridMenu: true,
            paginationPageSize: pagingConfig.pageSizes[0],
            enableHorizontalScrollbar: uiGridConstants.scrollbars.NEVER,
            columnDefs: [
                            {
                                name: 'CreatorName',
                                displayName: 'Creator Name',
                                cellTemplate: "<div class='ui-grid-cell-contents'>{{grid.appScope.callContactService(row.entity.CreatorName)}}</div>",
                                enableColumnMenu: true,
                                visible: true
                            }]}
  

вызываемый метод web api:-

    getById: function (userId) {

                    config = {
                        params: {
                            userId: userId
                        }
                    };
                    var deferred = $q.defer();

                    $http.get(api/details/getById ,config)
                        .success(function (data) {
                            deferred.resolve(data);
                        }).error(function (response) {
                            if (response.Message){
                                sharedScopeStorage.store('errorMessage', response.Message);
                            }
                            else{
                                sharedScopeStorage.store('errorMessage', userNotificationConfig.get_user_error_message);
                            }
                            deferred.reject(response);
                        });
                    return deferred.promise;
            }
  

Буду признателен за любую помощь, я застрял с этим со дня на день!

Комментарии:

1. какое-либо решение этой проблемы?