1

У меня возникла проблема с моим Угловым Винным Приложением. Проблема в том, что у меня все работает в одном контроллере, теперь я хочу разделить их, и я сделал это, но мои данные не будут отображаться. Поэтому я ищу какую-то помощь.Не показывать мои вина с услугами

Я получаю все свои объекты, как должен, и все кажется прекрасным, за исключением данных, которые не отображаются. Может ли кто-нибудь помочь?

HTML-:

<table class="table table-striped"> 
    <thead> 
    <tr> 
     <th>Name</th> 
     <th>Description</th> 
     <th>Year</th> 
     <th>Price</th> 
     <th>&nbsp;</th> 
    </tr> 
    </thead> 



<tbody> 
    <tr ng-repeat="wine in wines"> 
     <td><img ng-src="{{wine.Vineyard.ImageUrl}}" style="width: 100px; margin: 5px;" />{{wine.Name}}</td> 
     <td style="width: 250px;">{{wine.Description}}</td> 
     <td>{{wine.Vintage}}</td> 
     <td>{{wine.PriceRetail | currency}}</td> 
     <td> 
      <button ng-click="selectWine(wine)" class="btn btn-warning"><span class="glyphicon glyphicon-pencil"></span></button> 
      <button ng-click="removeWine(wine)" class="btn btn-danger"><span class="glyphicon glyphicon-remove"></span></button> 
      <button ng-click="favWine(wine)" class="btn btn-info"><span class="glyphicon glyphicon-star"></span></button> 
      <button ng-click="detailWine(wine)" class="btn btn-default"><span class="glyphicon glyphicon-zoom-in"></span></button> 
     </td> 
    </tr> 
</tbody> 

И AngularJS Файл

WineApp.controller("ListController", function($scope, $http, winedata) { 
$scope.wines = winedata.getWines(); 

$scope.removeWine = function(wine) { 
    // console.log("remove wine"); 

    var index = $scope.wines.indexOf(wine); 
    // console.log(index); 

    $scope.wines.splice(index, 1) 
} 

$scope.selectWine = function(wine) { 
    $scope.wine = wine; 
} 

$scope.updateWine = function(wine) { 
    // var editWine = { 
    // Name: $scope.wine.Name, 
    // Description: $scope.wine.Description, 
    // Vintage: $scope.wine.Vintage, 
    // PriceRetail: $scope.wine.PriceRetail 
    // } 
    $scope.wine = wine; 
    // console.log(wine); 
    // $scope.wines.extend(editWine); 
    alert("Updated!"); 
    // $scope.wine.Name = ""; 
    // $scope.wine.Description = ""; 
    // $scope.wine.Vintage = ""; 
    // $scope.wine.PriceRetail = ""; 
} 
}); 

услугой, как предполагается, чтобы получить данные из

WineApp.service('winedata', function($http) { 

this.getWines = function() { 
$http.get("http://services.wine.com/api/beta2/service.svc/json/catalog?apikey=2aef2f70e044ebcb683f46df93ac4eb9&size=100") 
.success(function(response) { 
    // alert(response); 
    console.log(response.Products.List); 

    wines = response.Products.List; 
}) 
} 


this.searchForWine = function(Name) { 
     $http.get("http://services.wine.com/api/beta2/service.svc/json/catalog?apikey=2aef2f70e044ebcb683f46df93ac4eb9&size=100&search=" + Name) 
     .success(function(response) { 
      // alert(response); 
      console.log(response.Products.List); 

      wines = response.Products.List; 
     }) 
} 
// wines.favoriteWine = []; 
}); 
+0

Я должен сказать, что маршрутизация работает нормально, это просто данные, которые просто не отображаются. –

ответ

1

Функция getWine() из вашего winedata служба, похоже, ничего не возвращает. Попробуйте заменить

wines = response.Products.Lists; 

с

return response.Products.Lists; 

и вы должны быть хорошо.

+0

Я попытался сделать это так, чтобы он выглядел следующим образом: –

+0

WineApp.service ('winedata', function ($ http) { this.getWines = функция() {$ http.get ("http://services.wine.com/api/beta2/service.svc/json/catalog?apikey=2aef2f70e044ebcb683f46df93ac4eb9&size=100") .success (функция (ответ) {// оповещение (ответ); console.log (response.Products.List); // successcb (ответ); возврата response.Products.List; }) } –

+0

и его еще не работает (apoligies, что он не был в том же сообщении :)) –

Смежные вопросы