AngularJS
非同步請求資料後,使用 deferred.promise
傳值,但很不穩定,刷新10次,只顯示2次。
不知道我的程式碼有什麼問題,或有更好的方法,請賜教!
服務文件:service.js
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;
}
controller.js
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(); })();
}]);
<li data-ng-bind="d_detail.id"></li> <li data-ng-bind="d_detail.name"></li>