当第一个控制器停止显示数据时,将$ routeParams id值传递给第二个控制器

时间:2015-09-24 11:02:18

标签: html angularjs

我有两个显示多个类别和子类别的控制器。

var app = angular.module('myApp', ['ngRoute']);
app.config(function($routeProvider) {
              $routeProvider. 


           when('/', {
                templateUrl: 'xyz/category.html',
                controller: 'myCtrl'
            }).

            when('/subcategory/:id', {
                templateUrl: 'xyz/subcategory.html',  
                controller: 'subcategoryCtrl'                
            }).

            otherwise({
                redirectTo: '/'
            });
    });

控制器1

app.controller('myCtrl', function($scope, $http) {
alert("myCtrl");
  $http.get("http://api.remix.bestbuy.com/v1/categories?apiKey=anzdbv4h3y5tfk2quyngxpsa&format=json")
  .success(function (response) {$scope.sample = response.categories;

  });
});

控制器2

app.controller('subcategoryCtrl', function($scope,$routeParams,$http) {

console.log("http://api.remix.bestbuy.com/v1/categories(id="+$routeParams.id+")?apiKey=anzdbv4h3y5tfk2quyngxpsa&format=json")
 $http.get("http://api.remix.bestbuy.com/v1/categories(id="+$routeParams.id+")?apiKey=anzdbv4h3y5tfk2quyngxpsa&format=json")
  .success(function (response) { 
var datalen=JSON.stringify(response.categories[0].subCategories.length);
alert(datalen);
    if(datalen == "0" ){
  alert("no data");
  var idvalue = $routeParams.id;
  alert(idvalue);
}
else{

  $scope.subproduct = response.categories[0].subCategories;

}
 // alert("response.categories[0].subCategories-->"+response.categories[0].subCategories);
  });
});

两个控制器的视图文件都是:

**分类视图**

<table>
  <tr>
    <th>Products</th>
  </tr>
  <tr ng-repeat="product in sample">
    <td>
    <a href="#/subcategory/{{$index=product.id}}">
    {{product.name}}
    </a>
    </td>
  </tr>
</table>

子类别视图

<table>
  <tr>
    <th>subcategory </th>
  </tr>
  <tr ng-repeat="subcategory in subproduct">
    <td>
     <a href="#/subcategory/{{$index=subcategory.id}}">
    {{subcategory.name}}
    </a>
    </td>
  </tr>
</table>

它获取所有子类别,但是我希望在子类别长度变为0时获取产品,如第2个控制器中指定的api:

**http://api.remix.bestbuy.com/v1/products(categoryPath.id="Id_value")?apiKey=anzdbv4h3y5tfk2quyngxpsa&page=1&format=json**

当stringifi长度变为零时,我想使用当前的routepamams id将此id访问到另一个控制器,然后我可以通过将routeparams id的值传递给产品控制器并获取来访问我的产品列表。 我怎么能访问id ??

1 个答案:

答案 0 :(得分:0)

您的问题不在控制器中,而是在View中。 你期望在这里看到什么?

<a href="#/subcategory/{{$index=subcategory.id}}">

检查浏览器调试器/控制台中的链接。将其更改为

<a href="#/subcategory/{{subcategory.id}}">