2016-12-16 2 views
1

Я надеюсь, что это простой вопрос ...нагрузки первый объект JSON по умолчанию - Угловая

Я пытаюсь создать таблицу, которая загружает мой JSON, а затем быть в состоянии щелкнуть строку и загрузите более подробные сведения, относящиеся к объекту json. Когда вы нажимаете строку, она должна загружать дополнительные данные в верхней части страницы. Часть щелчка строки работает нормально. У меня возникают проблемы с загрузкой исходного объекта по умолчанию.

Ниже приведен пример того, что я имею в виду:

var myItemsApp = angular.module('myItemsApp', [ ]); 

myItemsApp.factory('itemsFactory', ['$http', function($http){ 
    var itemsFactory = { 
     itemDetails: function() { 
      return $http({ 
        url: "fake-phi.json", 
        method: "GET", 

      }).then(function (response) { 
       return response.data; 
      }); 
     } 
    }; 

    return itemsFactory; 

}]); 

myItemsApp.controller('ItemsController', ['$scope', 'itemsFactory',   
    function($scope, itemsFactory){ 
     var promise = itemsFactory.itemDetails(); 

     promise.then(function (data) { 
      $scope.itemDetails = data; 
      console.log(data); 
     }); 

     $scope.select = function (item) { 
      $scope.selected = item; 
     } 

}]); 

http://embed.plnkr.co/6LfAsaamCPPbe7JNdww1/

Я попытался добавить это после $ scope.select, но получил сообщение об ошибке:

$scope.selected = item[0]; 

Как получить первый объект в моем json для загрузки по умолчанию?

заранее спасибо

ответ

1

Внутри ваше обещание функции решительность присвоить первый элемент массива, как выбранное значение:

promise.then(function (data) { 
     $scope.itemDetails = data; 
     $scope.selected = data[0]; 
     console.log(data); 
    }); 
+0

Мысль я был близок! Я ценю вашу помощь @ManuelObregozo! благодаря –

0
var myItemsApp = angular.module('myItemsApp', [ ]); 

myItemsApp.factory('itemsFactory', ['$http', function($http){ 
    var itemsFactory = { 
     itemDetails: function() { 
      return $http({ 
        url: "fake-phi.json", 
        method: "GET", 

      }).then(function (response) { 
       return response.data; 
      }); 
     } 
    }; 

    return itemsFactory; 

}]); 

myItemsApp.controller('ItemsController', ['$scope', 'itemsFactory',   
    function($scope, itemsFactory){ 
     var promise = itemsFactory.itemDetails(); 

     promise.then(function (data) { 
      $scope.itemDetails = data; 
      $scope.selected = data[0]; 

      console.log($scope.itemDetails); 
      console.log($scope.selected); 
     }); 

}]); 
Смежные вопросы