2013-09-26 16 views
12

Mam 2 pliki json, services.json i services_show.json. Podczas ładowania strony am pobierania danych z services.json i działa poprawnie. Kliknij przycisk, muszę pobrać zawartość z service_show.json i dołącz do tablicy services, ale nie działa.Dodaj dane json do istniejącej tablicy

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

beautyApp.controller('beautycntrl',function($scope,$http){ 

    $http.get('http://localhost/Find-Beauty/media/services.json').success(function(data) { 
     $scope.services=data.services; 
     $scope.services1=data.services1; 
    }); 

    $scope.Add = function(){ 

     $http.get('http://localhost/Find-Beauty/media/services_show.json').success(function(data) { 
      console.log(angular.toJson(data.services)); 
      $scope.services.push(data.services); 

     }); 

    }; 

    $scope.ViewMore = function(){ 

}); 

Services.json

{ 
"services":[ 
{ 
      "name": "Arun", 
      "gender": "Damen", 
      "duration": "1.5 Stunden", 
      "price": "€65,00", 
      "imagepath": "media/images/prfilepic1.png", 
      "percentage": "90%" 
     }, 

    ], 
    "services1":[ 

    { 
      "name": "Schnitt & Föhnen", 
      "gender": "Damen", 
      "duration": "1.5 Stunden", 
      "price": "€65,00", 
      "imagepath": "media/images/profilepic4.png", 
      "percentage": "25%" 
     }, 


    ] 
} 

service_show.json

{ 
"services":[ 
{ 
       "name": "Schnitt & Föhnen", 
       "gender": "Damen", 
       "duration": "1.5 Stunden", 
       "price": "€65,00", 
       "imagepath": "media/images/profilepic4.png", 
       "percentage": "5%" 
      }, 

    ], 
    "services1":[ 

    { 
       "name": "Schnitt & Föhnen", 
       "gender": "Damen", 
       "duration": "1.5 Stunden", 
       "price": "€65,00", 
       "imagepath": "media/images/prfilepic1.png", 
       "percentage": "50%" 
      }, 

    ] 
} 

Jak mogę przesunąć dane services_show.json do $ scope.services? Jakaś pomoc?

+0

Co masz na myśli, ponieważ nie działa? Brakuje, aby zamknąć kontroler, aby kod nie działał bez względu na wszystko. Sprawdź tutaj poprawny kod: https://gist.github.com/VictorBjelkholm/8b2004289ed9b4336034 –

+0

Próbowałem uruchomić twój kod lokalnie i to działa dobrze dla mnie .. – user700284

+0

Dzięki wszystkim za odpowiedź .. – Gopesh

Odpowiedz

25

Array.prototype.push.apply() może być używany do łączenia dwóch tablic.

Merge drugą tablicę do pierwszego jednym

$scope.services.push.apply($scope.services, data.services); 
7

trzeba wcisnąć jeden element na raz, jak

angular.forEach(data.services,function(item) { 
    $scope.services.push(item); 
}); 
0

Można również użyć concat: Tutaj mam swój kod: Proszę zapoznać się z

$http.get('store/LoadAlbums/', {'iCategoryID': iCategoryID}).then(function (data) { 
     for (var i = 0; i < $scope.result.mainalbums.length; i++) { 
     if($scope.result.mainalbums[i].iCategoryID == iCategoryID){ 
      $scope.result.mainalbums[i].albums = $scope.result.mainalbums[i].albums.concat(data.data.albums); 
      $scope.result.mainalbums[i].totalAlbumCategory = $scope.result.mainalbums[i].albums.concat(data.data.totalAlbumCategory); 
      $scope.result.mainalbums[i].loadmore = $scope.result.mainalbums[i].albums.concat(data.data.loadmore); 
      $scope.result.mainalbums[i].newpage = $scope.result.mainalbums[i].albums.concat(data.data.newpage); 
     } 
     } }); 
Powiązane problemy