angular.js - AngularJS 异步请求数据的结果传递,deferred.promise不稳定

浏览:32日期:2023-01-28

问题描述

AngularJS 异步请求数据后,使用 deferred.promise 传值,但很不稳定,刷新10次,只显示2次。不知道我的代码有什么问题,或者有更好的方法,请赐教!

服务文件:service.js<pre>app.factory(’Factory’,[’$sce’,’$q’,’$http’,function($sce,$q,$http){

var _baseUrl='//api.a.com',deferred = $q.defer(),service={};service.list=function(_params){ query({item:'/a/index',params:_params}).success(function(data){if(data.code==0){ deferred.resolve(data.data);}else{ alert('Error');} }); return deferred.promise;}var query=function(rq){ var item=rq[’item’],params=rq[’params’]; return $http({method:'POST',url:_baseUrl+item,params:params,headers:{’Content-Type’: ’application/x-www-form-urlencoded’} }).error(function(data){$.notify({message:_ay.system.code.api.error[data.code]},{type:'danger'}); });};return service;

}</pre>控制器文件:controller.js<pre>app.controller(’ctrl.detail’,[’$scope’,’$routeParams’,’Factory’,function($scope,$routeParams,Factory){

var _param=$routeParams,_id=_param.g,_token=token;$scope.d_detail={};$scope.detail=function(){ Factory.list({token:_token,device_id:_id}).then(function(data){$scope.d_detail=data.row; });};(init = function(){ $scope.detail();})();

}]);</pre>页面展示<pre><p data-ng-controller='ctrl.detail'>

<li data-ng-bind='d_detail.id'></li><li data-ng-bind='d_detail.name'></li>

</p></pre>

问题解答

回答1:

service.list = function (_params) { var deferred = $q.defer(); query({ item: '/a/index', params: _params }).success(function (data) {if (data.code == 0) { deferred.resolve(data.data);} else { alert('Error');} }); return deferred.promise;}回答2:

Factory.device_detail 没看到你定义啊

相关文章: