繁体   English   中英

角度如何重新加载控制器

[英]angular how to reload a controller

我有一个categoryPanel控制器,单击ng即可在ng-controller 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时立即显示数据。

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 */

调用getcategoryproducts时,您指向的产品数组可能会清楚。 您可以修复ajax_getCategoryProducts的回调并更改成功以将元素推送到数组中而不是重新分配。

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

    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM