AngularJS 1.2.0升级:无数据的模板/视图
从AngularJS 1.0.8升级到1.2.0后,我的模板(使用ng repeat等)不再工作。这意味着使用AngularJS获取的数据在此次升级后不会显示在我的html页面中。你知道发生了什么,我必须改变什么吗 但我可以看到(REST-)GET请求已成功处理,但页面中的数据未显示 controller.js: services.jsAngularJS 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
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;
});