2015-12-18 1 views
0

Я пытаюсь создать веб-страницу, которая читает json. У меня есть первая страница, индекс, которая работает отлично. Я получаю правильную информацию от json и распечатываю ее правильно. Но я хочу иметь подстраницу, в которой есть более подробная информация. Чтобы получить эту информацию.Представляем информацию от JSON на две страницы

Я не знаю, как вынуть конкретный объект из json и представить информацию на другой странице?

Мой код выглядит следующим образом:

Пример JSON

{ 
    "Name": "foo", 
    "array": [ 
    1, 
    2, 
    3 
    ], 
    "boolean": true, 
    "null": null, 
    "number": 123, 
    "object": { 
    "a": "b", 
    "c": "d", 
    "e": "f" 
    }, 
    "string": "Hello World" 
} 

Допустим, что у меня есть 5 JSONObject как это. На моей индексной странице я делаю ng-repeat, чтобы напечатать их, например, имя и номер. Имя - это ссылка на «подробнее» -страница. Более подробно представлено, например, массив.

ReadJson

var readJSON = function($scope, $interval, $http){ 
    $http.get("./output/resultJSON.json").success(function(response) { 
     $scope.result = response; 
    }) 

ReadMoreDetails

var readDetails = function($scope, $routeParams){ 

}; 

нг маршрутное

var application = angular.module("application", ['ngRoute']); 

application.config(function($routeProvider){ 
    $routeProvider 
     .when("/index.html", { 
      templateUrl: "index.html" 
     }) 
     .when("/showTable", { 
      templateUrl: "templates/resultTable.html", 
      controller: "readJSON" 
     }) 
     .when("/showMoreDetails/:id", { 
      template: "templates/moreDetails.html", 
      controller: "readDetails" 
     }) 
     .otherwise({redirectTo:"/showTable"}); 
}); 

MyLink

<div class="link" ng-click="result.Name"><a href="/showMoreDetails/{{result.Name}}">{{result.Name}}</a></div> 
+0

ли обе эти страницы под одного приложения? Если да, вы можете попробовать $ rootScope – Rajesh

+0

Вы можете создать сервис и получить доступ к нему с обеих страниц. – Jacob

+0

Вы можете использовать услугу, из которой все ваши контроллеры берут информацию. Переместите «readJson» в службу, а затем отправьте данные из службы. Например -> yourService.results. –

ответ

1

Вы можете сделать это,

var readDetails = function($scope, $routeParams){ 
    $http.get("./output/resultJSON.json").success(function(response) { 
     $scope.result = response; 
     for (var i = 0; i < $scope.result.length; i++) { 
     if($scope.result[i].Name == $routeParams.id { 
      $scope.details = $scope.result[i].array 
     } 

     }; 
    }) 
};