2016-12-23 12 views
6

Jak przypisać zmienną do JSON name?Należy przypisać zmienną do JSON Angular

JSON names obiekt

[ 
    { "name": "John", "age" : "12" }, 
    { "name": "Ben", "age" : "15" }, 
    { "name": "Jason", "age" : "18" }, 
    { "name": "Billy", "age" : "11" } 
] 

kątowa serwis i kontroler

var app = angular.module('app', []); 
    app.service('service', function($http, $q){ 
     var deferred = $q.defer(); 

     $http.get("jsonfile.json").then(function(data){ 
      deferred.resolve(data); 
     }); 

     this.getNames = function(){ 
      return deferred.promise; 
     } 
    }); 
    app.controller('secondCtrl', function($scope, service){ 
     var promise = service.getNames(); 
     promise.then(function(data){ 
      $scope.names = data.data; 
      console.log($scope.names); 

     }); 
}); 

Co próbowałem zrobić w kontrolerze:

var name = names.name; 

A potem Próbowałem w HTML ng-repeat {{name}}, ale nie działało.

+0

$ scope.names = dane; console.log ($ scope.names.name) – MMK

+0

, podobnie jak w 'secondCtrl': promise.then (...) było dobrym sposobem. Ale gdziekolwiek poza wywołania zwrotnego przekazanego do 'then()' byłoby bezużyteczne, ponieważ usługa nie zakończyła pobierania danych –

Odpowiedz

3

Możesz po prostu zapętlić swój obiekt nazw w HTML z ng-repeat.

Jeśli tablica jest:

$scope.names = [ 
    { "name": "John", "age" : "12" }, 
    { "name": "Ben", "age" : "15" }, 
    { "name": "Jason", "age" : "18" }, 
    { "name": "Billy", "age" : "11" } 
]; 

Można pokazać names.name z tego kodu:

<div ng-repeat="n in names">{{n.name}}</div> 
+0

Tak wiem, że mogę wyświetlić names.name z ng-repeat = "nw nazwach" – bafix2203

+1

Cóż, powiedziałeś w swoim original post "A potem próbowałem w HTML-ie powtórzyć {{name}}, ale to nie zadziałało.". Co to miało znaczyć? –