AngularJS - $ http URL中的动态参数

时间:2017-09-14 08:43:56

标签: javascript html angularjs

我用来为我的应用程序检索JSON的网址有一个动态参数(:id )。我不太确定如何使用它,以便它传递用户选择的ID。只需要一些指导。

app.factory('bookcategories', ['$http', function($http) {
  return $http.get('http://52.41.65.211:8028/api/v1/categories/:id/books.json')
    .success(function(data) {
        return data;
    })
    .error(function(err) {
        return err;
  });
}]);

控制器

app.controller('BookCategoryController', ['$scope', 'categories', '$routeParams',  function($scope, categories, $routeParams) {
    categories.success(function(data) {
    $scope.detail = data.categories[$routeParams.bookId];
    $scope.currentCategoryIndex = parseInt($routeParams.categoryId);

        $scope.myCategoriesDetails = $scope.category;
    });
}]);

app.js

...
  .when('/categories/:categoryId', {
    controller: 'BookCategoryController',
    templateUrl: 'views/booksincategory.html'
})
...

HTML

<h3 class="title">{{book.title}}</h3>

1 个答案:

答案 0 :(得分:1)

您可以通过以下代码示例之类的小服务来实现此目的。工厂在这里是错误的选择。

app.service('bookCategories', ['$http', function($http) {
  this.get = function (id) {
      return $http.get('http://52.41.65.211:8028/api/v1/categories/'+ id + '/books.json')
        .success(function(data) {
          return data;
        })
        .error(function(err) {
          return err;
        });
  };
}]);

而不是像使用它一样:

app.controller('MyCtrl', function(bookCategories) {
  bookCategories.get(1).then(function (result) {
    console.log(result);
  });
});