2015-06-19 49 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