Angular JS RouteProvider不会调用

时间:2015-06-19 19:15:54

标签: angularjs

我正在开发像webapp这样的电子商务来学习Angular。我的主页上有一个菜单(常见且在所有页面上都可见),它提供了可用于书籍,衣服等。

在我的菜单上,我有以下列表项目:

<li><a href="#/SearchProducts" ng-click="searchProduct('Computers')">Computers</a></li> <li><a href="#/SearchProducts" ng-click="searchProduct('Academics Professional')">Academics & Professional</a></li>

第一个控制器中的

searchProduct函数在范围内设置所选产品并设置location.path。

$scope.searchProduct =function(productTBSearched){      
            $scope.TBFProduct=productTBSearched;
            $location.path("/SearchProducts");
        }

我的第一个控制器中也有路由提供程序,它指的是另一个html和第二个控制器。

$routeProvider.when("/SearchProducts", {                
    templateUrl: "./views/HomeSearchProducts.html" ,
    controller: "productSearchCtrl"
});

在我的第二个控制器中,我调用REST WS来搜索数据库并构建我的Response JSON。问题是当我点击主页菜单上的第一项时,我得到搜索结果,我可以看到我的网址变为“....... Index2.html#/ SearchProducts”

现在在此页面上,当我尝试选择另一个菜单项时,Routeprovider不会再次调用“ProductSearchCtrl”,并且不会对新选择的项目执行Ajax调用。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

我认为您正在尝试重新加载路线。您可以将代码更新为以下内容,以便重新加载路线。

$scope.searchProduct =function(productTBSearched){      
    $scope.TBFProduct=productTBSearched;
    if($location.path() === "/SearchProducts") {
        $route.reload();
    } else {
        $location.path("/SearchProducts");
    }
}