AngularJS 1.2.0升级:无数据的模板/视图

AngularJS 1.2.0升级:无数据的模板/视图,angularjs,Angularjs,从AngularJS 1.0.8升级到1.2.0后,我的模板(使用ng repeat等)不再工作。这意味着使用AngularJS获取的数据在此次升级后不会显示在我的html页面中。你知道发生了什么,我必须改变什么吗 但我可以看到(REST-)GET请求已成功处理,但页面中的数据未显示 controller.js: services.js var services = angular.module( 'avportal.services', [ 'ngResource' ] ); service

从AngularJS 1.0.8升级到1.2.0后,我的模板(使用ng repeat等)不再工作。这意味着使用AngularJS获取的数据在此次升级后不会显示在我的html页面中。你知道发生了什么,我必须改变什么吗

但我可以看到(REST-)GET请求已成功处理,但页面中的数据未显示

controller.js:

services.js

var services = angular.module( 'avportal.services', [ 'ngResource' ] );
services.factory( 'EditransferService', [ '$resource', '$routeParams', function find( $resource, $routeParams ) {
    return $resource( '/av-portal/rest/editransfer/:id',
    {
        id : '@id' || null,
        isArray : false
    } );
} ] );

services.factory( 'EditransferListLoader', [ 'EditransferService', '$q', '$route', '$location', '$routeParams', 
        function( EditransferService, $q, $route, $location, $routeParams ) {
            var find = function find() {
                var delay = $q.defer();
                EditransferService.get( {
                    page : $route.current.params.pagination.page,
                    maxresults : $route.current.params.pagination.maxresults,
                    datenbestand : $route.current.params.searchfilter.datenbestand,

                    nachname : $route.current.params.searchfilter.nachname
                }, function( editransferlistdto ) {
                    delay.resolve( editransferlistdto );
                }, function() {
                    delay.reject( 'Unable to fetch' );
                } );
                return delay.promise;
            };

            return find;
        } ] );
html:


{{maindto.id}

感谢您对承诺的帮助。我目前的解决方案如下:

controllers.js

/* This line is replaced with ...then... */
//$scope.editransferlistdto = $scope.searchFactory( editransferlistdto );
$scope.searchFactory().then( function (editransferlistdto ){
    $scope.editransferlistdto = editransferlistdto;
});

您是否尝试过使用chrome调试工具选择tr元素,运行命令angular.element($0).scope(),并查看作用域上是否确实存在EditTransferListDTO.aa数据?我可以在带有“delay.resolve(EditTransferListDTO)”的行上进行调试时看到数据,但在带有“return delay.promise”的行上看不到数据。所以它不在范围之内。这看起来像是你依靠angular自动解决承诺。从1.2.0开始,您必须在控制器中手动提供callback to then方法,并将解析的值分配给scope的某些属性。
<tr ng-repeat="maindto in editransferlistdto.aaData">
                    <td>{{maindto.id}}</td>
                </tr>
/* This line is replaced with ...then... */
//$scope.editransferlistdto = $scope.searchFactory( editransferlistdto );
$scope.searchFactory().then( function (editransferlistdto ){
    $scope.editransferlistdto = editransferlistdto;
});