2016-04-19 8 views
0

私はビューロード時にドロップダウンを満たす必要があります。しかし、問題は、私はドロップダウンを埋めるしようとしているときは空白に見えます。 IAngularJS filldドロップダウン(約束)

コントローラ

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); 
       }); 
      }); 

ビュー

 <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> 

リソース教材

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

答えて

0

データファクトリー

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; 
    } 
} 

内部コントローラ

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

あなたは、ページの読み込みに

0

をコントローラにloadstatusを使用することができ、これを試してみてください:

コントローラ

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

ビュー

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

                  </select> 

リソース教材

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; 
    } 
    }; 
});