Передача значения идентификатора $ routeParams во второй контроллер, когда первый контроллер перестает отображать данные

0

У меня есть два контроллера, которые отображают несколько категорий и подкатегорий.

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, как указано во втором контроллере из этого api:

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

Когда длина stringifi становится равной нулю, я хочу использовать текущий идентификатор runepamams для доступа к этому идентификатору в другой контроллер, тогда я могу получить доступ к моему списку продуктов, передав значение id маршрутизации в контроллер продуктов и извлечение? Как я могу получить доступ к идентификатору?

  • 0
    Не используйте success использовать then . Используйте сервис для выполнения запросов $http . И не используйте $rootScope , создайте сервис, который имеет геттеры и сеттеры для вашего проекта. Вот как вы делитесь своими данными в Angular.
  • 0
    $ http запрос на товары
Показать ещё 1 комментарий
Теги:

1 ответ

0

Ваша проблема не в контроллере, а в представлении. Что вы ожидаете увидеть здесь?

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

Проверьте свои ссылки в отладчике/консоли браузера. Измените его на

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню