根据AngularJS中的当前URL检索JSON数据

时间:2014-07-09 13:37:31

标签: angularjs

我使用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;
  });
});

2 个答案:

答案 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;
});