2014-01-09 3 views
-1

проблема заключается в том, что я использую $ http или $ resource для извлечения данных, он успешно извлекается и привязывается к просмотру, но когда я использую обещание, данные поступают к клиенту, но он не привязывается к вид. вот мой код: // вид, используя обещание в http-запросе в угловом

<div class="pull-left span6" > 

<h3>{{Name}}</h3> 

<ul> 
    <li ng-repeat="type in typeList"> 
     <span>{{type.Title}}</span> 
    </li> 
</ul> 

// контроллер

var proxyControllers = angular.module('httpProxyControllers', []); 

proxyControllers.controller('TypeListController', 
function TypeListController($scope, typeListData) { 
    $scope.Name = 'Type List Addresses'; 
    $scope.typeList = typeListData.getTypeList(); 

    $scope.typeList.then(function(data){ 
     console.log('data received'); 
     console.log(data); 
    },function(status){ 
     console.log(status); 
    }); 
}); 

// Служба

var proxyServices = angular.module('httpProxyServices', ['ngResource']); 


proxyServices.factory('typeListData' , function($http, $q){ 
    return{ 
     getTypeList : function(){ 
      var deferred = $q.defer(); 
      $http({method : 'GET' , url: '/data/getTypeList'}) 
       .success(function(data, status, headers, config){ 
        deferred.resolve(data); 
       }) 
       .error(function(data, status, headers, config){ 
        deferred.reject(status); 
       }); 

      return deferred.promise; 
     } 
    } 
}); 

в то блок управления при входе данных для консоли, это показывает, что данные успешно возвращаются, но ничего не происходит мой взгляд и мой взгляд ничего не показывают.

заранее спасибо,

ответ

0

Вам нужно назначить data для $scope.typeList

//initialize with empty array 
$scope.typeList = []; 

typeListData.getTypeList().then(function(data){ 

    //initialize with received data 
    $scope.typeList = data; 

    console.log('data received'); 
    console.log(data); 
},function(status){ 
    console.log(status); 
}); 
+0

привет, спасибо за быстрый ответ, ваш ответ является правильным. однако, если я обязуюсь установить typeList в блоке с полученными данными, какая разница, если я отправлю метод обратного вызова и не буду использовать обещание? и насколько я помню, я видел в видеоролике то, что он фактически не использовал тогда метод, и он упомянул, что обещание будет привязано к просмотру, и на демонстрации он работал нормально. еще раз спасибо. – ali

+0

В учебнике вы видели, что он, вероятно, использовал $ resourse, а не $ http. –

+0

@ali, Извините, вне форума для sometime. Я согласен с @MohammadSepahvand, вероятно, вы видели использование '$ resourse' не' $ http', поскольку я никогда не использовал '$ http' как таковой – Satpal

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