2013-09-26 16 views
12

Ich habe 2 JSON-Dateien, services.json und services_show.json.At Seite laden die Daten von services.json und es funktioniert ordnungsgemäß.Auf einen Knopf klicken, muss ich den Inhalt holen von service_show.json und an den Dienst-Array anhängen, aber es funktioniert nicht.Hinzufügen von JSON-Daten zu bestehenden Array

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%" 
      }, 

    ] 
} 

Wie kann ich die services_show.json Daten auf $ scope.services schieben? Irgendeine Hilfe?

+0

Was meinen Sie damit nicht funktioniert? Es fehlt Ihnen, Ihren Controller zu schließen, damit der Code nicht funktioniert, egal was passiert. Hier nach dem richtigen Code suchen: https://gist.github.com/VictorBjelkholm/8b2004289ed9b4336034 –

+0

Ich habe versucht, Ihren Code lokal und es funktioniert gut für mich .. – user700284

+0

Vielen Dank für die Antwort .. – Gopesh

Antwort

25

Array.prototype.push.apply() kann zum Zusammenführen zweier Arrays verwendet werden.

Merge die zweite Reihe in die erste

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

Sie benötigen ein Element zu einem Zeitpunkt zu drücken, wie

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

Sie können auch concat verwenden: Hier habe ich meinen eigenen Code: Bitte beziehen Sie sich auf

$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); 
     } 
     } }); 
Verwandte Themen