我使用AngularJS显示通过JSON获取的图像列表。现在我有静态编码的JSON URL,但我想根据当前页面更改JSON URL。
例如,如果我在/ albums / test123上检索到的网址是/ j / albums / test123
我该怎么做?
HTML
<div data-ng-controller="AlbumController">
<ul class="album_list">
<li data-ng-repeat="img in media_list">
<img data-ng-src="((img.s1_url))" data-ng-style="height: {{img.s1_height}}px; width: {{img.s1_width}}px;" />
</li>
</ul>
</div>
main.js
var myApp = angular.module("myApp", []);
myApp.config(function($interpolateProvider){
$interpolateProvider.startSymbol('((').endSymbol('))');
}
);
myApp.controller("AlbumController", function($http, $scope){
$http.get('/j/albums/album52').success(function(data) {
$scope.media_list = data;
});
});
答案 0 :(得分:0)
$ location应该使用下面的代码来解决这个问题:
https://docs.angularjs.org/api/ng/service/$location
myApp.controller("AlbumController", function($http, $scope, $location){
$scope.jsonUrl = '/j/' + $location.path();
$http.get($scope.jsonUrl).success(function(data) {
$scope.media_list = data;
});
});
答案 1 :(得分:0)
首先,您必须使用ng-routes定义路由, 一旦路线被定义为类似
.when('/album/:id', {
templateUrl: '/tpl/album/view', controller: 'AlbumCtrl'
您可以向控制器注入$routeparams
并执行类似的操作
var albumId = $routeParams.albumid;
$http.get('/j/albums/' + albumId).success(function(data) {
$scope.media_list = data;
});