2017-09-14 213 views
1

我試圖從瀏覽器中的URL傳遞參數給控制器,例如,應該在控制器中傳遞$scope.id,所以JSON加載是這http://52.41.65.211:8028/api/v1/categories/122/books.json,雖然沒有工作,任何想法?

URL例如 http://www.example.com/categories/122

app.js

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

控制器

app.controller('BookCategoryController', ['$scope', 'bookcategories', '$routeParams', function($scope, bookcategories, $routeParams) { 
    bookcategories.getAllBooks($scope.id).then(function(response) { 
    $scope.detail = response.data.books[$routeParams.categoryId]; 
    }); 
}]); 

服務

app.service('bookcategories', ['$http', function($http) { 
    return { 
    getAllBooks: function(id) { 
     return $http.get('http://52.41.65.211:8028/api/v1/categories/'+ id + '/books.json') 
    } 
    } 
}]); 

booksincategory.html

<div class="category col" ng-repeat="book in detail"> 
    <h3 class="title">{{book.title}}</h3> 
    </div> 
+1

你有機會看看[這個答案](https://stackoverflow.com/a/46216131/2435473)?我不明白你爲什麼要打開多個問題..而不是專注於單個和修復它在一個地方:) –

回答

1

如果您的網址是http://www.example.com/categories/122和路由params爲像

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

那麼你會得到在控制器中的categoryId$routeParams.categoryId

只需設置$scope.id = $routeParams.categoryId;

只需在您的控制器中設置此調用服務之前。所以,你的控制器會像

app.controller('BookCategoryController', ['$scope', 'bookcategories', '$routeParams', function($scope, bookcategories, $routeParams) { 
    $scope.id = $routeParams.categoryId; 
    bookcategories.getAllBooks($scope.id).then(function(response) { 
     $scope.detail = response.data.books; 
    }); 
}]); 

只需使用

$scope.detail = response.data.books; 

沒有必要使用$ scope.detail = response.data.books [$ routeParams.categoryId]它的語法不正確。希望這會對你有用。您在控制器中錯誤地分配了$ scope.detail。我不知道是否有任何問題在HTML

+0

是有道理的,但沒有任何東西似乎仍然,它似乎現在正確調用JSON,是否有錯誤在我的HTML ? – user1937021

+0

@ user1937021使用$ scope.detail = response.data.books;你曾經使用過不正確的語法。希望這會對你有用。 – Nitheesh

+0

非常感謝,它的工作! – user1937021