2014-02-20 3 views
2

Только что начал опробовать угловые js. Я установки стандартного ASP.NET MVC контроллер API:webapi звонок от углового js до контроллера не работает

public class ValuesController : ApiController 
{ 
     // GET api/values 
     public IEnumerable<string> Get() 
     { 
      return new string[] { "value1", "value2" }; 
     } 
} 

Я пытаюсь получить эти значения в моем ListBox:

<div ng-controller="myctrl"> 
     <select ng-model="selectedValue" ng-options="val for val in getData()"> 
      <option value="">Select</option> 
     </select> 
</div> 

Используя этот скрипт:

var app = angular.module('app', []); 
app.controller('myctrl', function ($scope, $http) { 
    $scope.getData = $http.get('/api/values').then(function (data) { 
     return data; 
    }); 
}); 

Когда я это не заполняет список и jsfiddle: http://jsfiddle.net/dingen2010/t3eXj/

+0

Любые ошибки консоли? – ssilas777

ответ

2

Обезвреживание Promise не происходит в версии 2.2.1x AnuglarJS. Я считаю, что ваш код должен сделать что-то вроде

 $http.get('/api/values').then(function (data) { 
     $scope.values=data; 
    }); 

И в вашем HTML

 <select ng-model="selectedValue" ng-options="val for val in values"> 
      <option value="">Select</option> 
     </select> 
0

В приведенном выше примере использования, если бы вы выбрали цепочку своего звонка get с помощью метода success, то data будет тем, что вы ожидаете от него (т. данные, возвращаемые вашим API).

Но, поскольку вы используете метод then, аргумент, поданный на обратный вызов, фактически является объектом обещания, а доступ к данным можно получить, используя свойство data.

$scope.getData = $http.get('/api/values').then(function (promise) { 
    return promise.data; 
}); 
Смежные вопросы