angular如何重新加载控制器

时间:2015-06-19 21:07:07

标签: javascript jquery html angularjs

我有一个categoriesPanel控制器,在ng-click上我想在ng-controller productsPanel中显示该类别的所有产品。我遇到的问题是,每次我点击ng-click =" selectorCategory"刷新页面后,我获得了所点击类别中的所有产品。

public JsonResult SearchNodesByTags(string[] tags)
{
    var dbTags = _DbContext.Tags.Where(t => tags.Contains(t.DisplayName)).ToList();
    var nodes = _DbContext.Nodes.Where(n => n.Tags.Intersect(dbTags).Any());  
    // Error about intersection with non primitive

    return Json(nodes);
}

这是我的角度脚本,它从后端获取正确的数据,但数据仅在刷新页面时显示在producsPanel控制器中。我想在你点击ng-click时显示数据。

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

1 个答案:

答案 0 :(得分:0)

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

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

    });