2015-06-19 63 views
1

我有一个ngPanel控件,在ng-click上我想在ng控制器productsPanel中显示所有属于那个类别的产品。我遇到的问题是,每次点击ng-click =“selectorCategory”后,我都会在刷新页面后得到所点击类别中的所有产品。角度如何重新加载控制器

 <div class="col-md-6 m-t-10" ng-controller="productsPanel" style="padding-right:1px;"> 
     <div class="panel panel-default" style="height: 700px"> 
      <div class="panel-body"> 
       <div ng-repeat="product in Products" class="productRow"> 
        <a href="javascript:;" class="btn btn-white btn-xlarge btn-block">{{product.Product}}</a> 
       </div> 
      </div> 
     </div> 
    </div> 

    <div class="col-md-3 m-t-10" ng-controller="categoriesPanel" style="padding-left: 0; padding-right: 5px"> 
     <div class="panel panel-default" style="height: 700px"> 
      <div class="panel-body"> 
       <div ng-repeat="category in Categories" class="categoryRow"> 
        <a href="javascript:;" data-id="{{category.CategoryId}}" ng-click="selectedCategory($event)" class="btn btn-white btn-xlarge btn-block">{{category.Category}}</a> 
       </div> 
      </div> 
     </div> 
    </div> 

这是我是从后端获得正确的数据角脚本,但该数据仅显示在producsPanel控制器,当我刷新页面。我希望数据在您执行ng-click后立即显示。

app.controller('categoriesPanel', function($scope, $location, $http, $localStorage){ 

var CompanyId = $localStorage.Employee[0].CompanyId; 

$http({ 
    method : 'GET', 
    url  : 'http://localhost:8888/categories/ajax_getCompaniesCategories', 
    params: {CompanyId: CompanyId} 
}) 
.success(function(data){ 
    $scope.Categories = data; 
    $localStorage.Categories = data; 
}); 

$scope.selectedCategory = function(event){ 

    $localStorage.CategoryId = $(event.target).data('id'); 

    $http({ 
     method : 'GET', 
     url  : 'http://localhost:8888/products/ajax_getCategoryProducts', 
     params: {CategoryId: $localStorage.CategoryId} 
    }) 
    .success(function(data){ 
     $scope.Products = data; 
     $localStorage.Products = data; 

    }); 
} 

}); 

app.controller('productsPanel', function($scope, $location, $http, $localStorage){ 
$scope.Products = $localStorage.Products; 
}); 

/* END CONTROLLERS */ 
+0

声音S形会比使用功能更好的...然后页面上,你有什么需要在URL重装过滤数据 – charlietfl

+0

谁还会u使用的routeParam在这种情况下? – user3862830

回答

0

在调用getcategoryproducts时,您指向的产品数组可能会清除。你能否修复你的回调ajax_getCategoryProducts并改变成功将元素推入数组而不是重新分配。使用routeParam

.success(function(data){ 
     $scope.Products.length=0; 
     data.forEach(function(p) { 
      $scope.Products.push(p); 
     }); 
     $localStorage.Products = $scope.Products; 

    }); 
+0

产品阵列不清晰。我觉得我需要操纵一些如何显示新数据。 – user3862830