Javascript 视图中的角度承诺不显示

Javascript 视图中的角度承诺不显示,javascript,angularjs,Javascript,Angularjs,我有以下angular应用程序,该服务未正确返回数据。如果我将$http回调响应记录在console.log中,我就知道web服务中的数据是正确的 但是,在我的应用程序中,它没有显示。以下是HTML: <div id="main-content" class="content" ng-app="wflow-app" ng-controller="main-controller"> <h3>Actors</h3>

我有以下angular应用程序,该服务未正确返回数据。如果我将
$http
回调响应记录在console.log中,我就知道web服务中的数据是正确的

但是,在我的应用程序中,它没有显示。以下是HTML:

<div id="main-content" class="content" ng-app="wflow-app" ng-controller="main-controller">
                <h3>Actors</h3>
                <li>
                    <ul ng-repeat=" a in actors">
                        <li>{{a}}</li>
                    </ul>
                </li>
为什么这不起作用

如果我在控制器中使用此选项,它将起作用:

dataService.getActors().then(function (data) {
    $scope.actors = data;
});

你的行李在哪里

$http.get(_baseUrl + '/actors').then(function(response){
        console.log(response.data);
        deferred.resolve(response.data);
 }).catch(function(response) {
         deferred.reject(response.statusCode);
 });
如果您的服务器使用非200响应进行响应,则目前不会被拒绝

我个人会把这个改成

var getActors = function(){
    return $http.get(_baseUrl + '/actors');
};
此外,dataService.getActors()的结果也是一个承诺。因此,因为返回值是一个promise,所以应该调用promises-THEN方法,如下所示

dataService.getActors().then(function(response) {
        $scope.actors=response.data;
}).catch(function(response) {
        //oops
})

这是因为$http返回一个承诺。$q所做的唯一一件事是使用response.data解析,而不是使用response解析。

我添加了您建议的代码,但这没有什么区别。GET工作正常,我只是不明白为什么
$scope.actors=dataService.getActors()部分不起作用\根据Angular,如果在视图中使用承诺,它将在承诺为真时更新视图-但它无法控制拒绝-如果承诺永远无法解决,则您会有不良行为。我建议您使用dataService.getActors()方法调用它。您提到的方法的另一个缺点是,它使调试变得非常困难,正如您现在所发现的那样——至少我建议您使用它,然后使用您喜欢的方法。我已经看过了,它应该可以工作。我建议只返回$http.post来简化它(它返回一个承诺),然后尝试$scope.actors=dataService.getActors();-假设你的决心是好的——希望它能起作用:)
dataService.getActors().then(function(response) {
        $scope.actors=response.data;
}).catch(function(response) {
        //oops
})