使用AngularJS routeparams(stateparams)时出现问题

时间:2013-10-06 10:21:21

标签: javascript angularjs angular-ui-router

我在使用以下专辑路线时遇到问题。下面是我的控制器和路线文件,我正在使用角度ui模块。我正在尝试在/ photos /:albumId route上加载相册上的照片。

tripApp.controller('HotelPhotoAlbumController', function($scope, $timeout, Hotel, $stateParams, $http) {

  $scope.hotelId = $stateParams.hotelId;
  $scope.albumId = $stateParams.albumId;

  $http({
    method: 'GET', url: 'hotels/' + $scope.hotelId + '/albums/' + $scope.albumId + '.json'
  }).success(function(data, status, headers, config){
    $scope.photos = data;
  }).error(function(data, status, headers, config){
    $scope.status = status;
  });

});

var tripApp = angular.module('tripApp', ['ui.state', 'ui.bootstrap', 'ui.calendar', 'ui.map', 'infinite-scroll', 'tripApp.directives', 'hotelServices', 'ngSanitize'])
    tripApp
    .value('$anchorScroll', angular.noop)
    .config(function($stateProvider, $urlRouterProvider){

      $urlRouterProvider.otherwise("/hotels")

      $stateProvider
        .state('hotels', {
            url: "/hotels",
            templateUrl: "templates/hotels.html",
            controller: "HotelsController"
        })
          .state("hotels.search", {
              url: "/search",
              templateUrl: "templates/hotels.search.html",
              controller: "HotelsController"
          })
        .state("hotel", {
          url: "/:hotelId",
          templateUrl: "templates/hotel.html",
          controller: "HotelDetailController"
        })
          .state("hotel.index", {
              url: "/",
              templateUrl: "templates/hotel.home.html",
              controller: "HotelDetailController"
          })
          .state("hotel.options", {
              url: "/options",
              templateUrl: "templates/hotel.options.html",
              controller: "HotelRoomsController"
          })
          .state("hotel.reviews", {
              url: "/reviews",
              templateUrl: "templates/hotel.reviews.html",
              controller: "HotelDetailController"
          })
          .state("hotel.photos", {
              url: "/photos",
              templateUrl: "templates/hotel.photos.html",
              controller: "HotelDetailController"
          })
          .state("hotel.photos.details", {
              url: "/photos/:albumId",
              templateUrl: "templates/hotel.photos.details.html",
              controller: "HotelPhotoAlbumController"
          })
          .state("hotel.calendar", {
              url: "/calendar",
              templateUrl: "templates/hotel.calendar.html",
              controller: "HotelCalendarController"
          })
        .state("restaurants", {
        url: "/restaurants",
        templateUrl: "templates/restaurants.html",
        controller: "RestaurantsController"
      })
    })

1 个答案:

答案 0 :(得分:1)

州网址声明是相对于父级的,因此不是"/photos/:albumId"尝试"/:albumId"