2016-04-19 17 views
0

Ich muss Drop-Down auf Ansicht laden füllen. Aber Problem ist, dass, wenn ich versuche, Dropdown zu füllen, es leer erscheint. IchAngularJS fill dropdwon mit Versprechen

-Controller

app.controller('CurrencyCtrl', ['$scope', 'Currency', '$http', function ($scope, Currency) { 
$scope.curencies = []; 
     Currency.get(function (response) { 
       angular.forEach(response, function (val, key) { 
        $scope.currencies.push(val); 
       }); 
      }); 

Ansicht

 <select class="form-control" name="country" 
    data-ng-model="curencies" 
data-ng-options="option.name for option in curencies.value track by curencies.id"> 

                  </select> 

Resourse

app.factory("Currency", function ($resource) { 
    return $resource("api/currencies", {}, { 
     get: {method: "GET", isArray: true} 
    }); 
}); 

Antwort

0

Daten Fabrik

var datafactory = angular.module('Currency', ['Currency']); 
datafactory.factory('Currency', function ($http, $q) { 
return { 

    //Get Data 
    getCurrency: function (Date) { 
     var deferred = $q.defer(); 

     $http({ 
      method: 'GET', 
      url: 'api/Send_Mail' 
     }).success(function (data) { 
      deferred.resolve(data); 
     }).error(function (response) { 
      deferred.reject(response); 

     }); 
     return deferred.promise; 
    } 
} 

Innen-Controller

$scope.loadstatus++; 
Factory.getCurrency().then(function (data) { 
    $scope.loadstatus++; 
    //do something 
}, function (err) { 
    $scope.loadstatus--; 
    alert("Error" + error); 
}); 

Sie loadstatus nutzen könnten Laden der Seite an die Steuerung

0

Versuchen Sie folgendes:

-Controller

app.controller('CurrencyCtrl', ['$scope', 'Currency', '$http', function ($scope, Currency) { 
    $scope.curencies = Currency.get(); 
}); 

Ansicht

 <select class="form-control" name="country" 
    data-ng-model="curencies" 
data-ng-options="option.name for option in curencies track by curencies.id"> 

                  </select> 

Resourse

app.factory("Currency", function($resource, $q) { 
    return { 
    get: function() { 
     var deferred = $q.defer(); 
     $resource("api/currencies").get().$promise.then(function(response) { 
     var result = []; 
     angular.forEach(response, function(val, key) { 
      result.push(val); 
     }); 
     deferred.resolve(result); 
     }) 
     return deferred.promise; 
    } 
    }; 
});