2017-03-16 72 views
0

Ng-View没有给出输出。尝试将页面路由到另一个页面,而不是我得到这个错误。Ng-View没有给出输出“RangeError:超出最大调用堆栈大小”

"RangeError: Maximum call stack size exceeded"

请检查以下内容并给出建议以解决该问题。 App.jss

'use strict';

var app = angular.module('Sab', ['ui.filters','ui','ngRoute']) 

.config(["$routeProvider", function($routeProvider) { 
    $routeProvider. 
     when('/home', { 
      templateUrl: 'index.html', 
      controller: 'menuCtrl' 
     }). 
     when('/Deals/:offer_name', { 
      templateUrl: 'Deals.html', 
      controller: 'abCtrl' 
     }). 
     when('/D', { 
      templateUrl: 'D.html', 

     }). 
     otherwise({ 
      redirectTo: '/home' 
     }); 
}]) 


.controller('menuCtrl', function($scope,$http) { 


    $http.get("http://tools.vcommission.com/api/coupons.php?apikey=e159f64e3dd49fddc3bb21dcda70f10c6670ea91aac30c7cb1d4ed37b20c45b8").then(function (response) { 
     $scope.myData = response.data; 
     $scope.offerName = ''; //set initially 
     $scope.selectedIndex = -1; 
     $scope.filteredOffers = []; 



    }); 
$scope.showData = function(offer_name, index) { 
     $scope.offerName = offer_name; 
     $scope.filteredOffers = $scope.myData.filter(function(offer) { 
     return offer.offer_name == $scope.offerName; 
     }); 
     $scope.selectedIndex = index; 

     } 


}) 

.controller('abCtrl',function($scope,$http,$stateParams,$filter,$window) { 


$http.get("http://tools.vcommission.com/api/coupons.php?apikey=e159f64e3dd49fddc3bb21dcda70f10c6670ea91aac30c7cb1d4ed37b20c45b8").then(function (response) { 


     var offerName = $stateParams.offer_name; 
     $scope.filteredOffers = $filter('filter')(response.data, {offer_name: offerName}); 
    // $scope.filteredOffers = _.filter(response.data, ["offer_name",offerName]); 

     console.log($scope.filteredOffers) 
     console.log(offerName) 


     $scope.dealopen = function($a){ 
      for (var i=0;i<response.data.length;i++) 
     { 
      //console.log($scope.data[i].name); 
      $link=response.data[i].link; 

      if ($link==$a) 
      { 

      $window.open($link,"_self","location=yes"); 
      console.log($a); 
      } 




     } 



     } 
     }); 


}); 

的Html

<div class="row" ng-app="Sab" ng-controller="menuCtrl" > 
        <ng-view></ng-view> 

        <div class="col col-100 " ng-repeat="da in myData | unique: 'store_image'" > 
      <div class="card col " > 

        <img class=" img-responsive " ng-src="{{ da.store_image}}" 
ng-click="showData(da.offer_name, $index)" 
        /> 
       <div class="caption"> 
        <a class="item item-text-wrap" href="#/Deals/{{da.offer_name }}" ng-click="showData(da.offer_name, $index)" 
> 
        <b class="group inner list-group-item-heading center-block"> 
         {{da.category }} Deals </b> 

       </a> 

        </div> 
        </div> 
       </div> 
      </div> 









        </div> 
+0

您要调用的数据是_huge_。这是一个2 MB的阵列。这可能与“超出最大调用堆栈”有关。 –

+0

但那在离子中工作正常..以及如何克服这个 –

+0

它似乎不像连接到大数据。更多看起来像无限嵌套路由或某种其他类型的无限递归。你能为我们提供一个小提琴吗? –

回答

0

首先,这涉及到心灵 - 无限递归。首先,你menuCtrl被加载两次:

  1. 在HTML

    ng-controller="menuCtrl" 
    
  2. 在路线

    when('/home', { 
        templateUrl: 'index.html', 
        controller: 'menuCtrl' 
    }) 
    

让我们从解决这个开始。下一个取决于,我想你的其他HTML模板。

+0

两次?先生在哪里.. –

+0

先生,我们可以聊天.. –

+0

是的,我们可以。怎么样? Skype的? –

相关问题