2016-07-15 57 views
0

我試圖從數據庫獲取數據到UI。通過提供商提供的網址獲取數據。從提供者到控制器在angularJs中傳遞值

控制器中的控制器 DetailsProvider.getDashboardDetails()變爲null。

var appmod = angular.module('project.DetailDashboardController', []); 

appmod.controller("DetailDashboardController", ['$rootScope', '$scope', '$state', 'DetailsProvider',function($rootScope, $scope, $state,DetailsProvider) { 
    console.log("DetailDashboardController --- "); 

    $scope.DetList= DetailsProvider.getDashboardDetails() 

}]); 

})(window, window.angular); 

提供商,它將調用列表

(function(angular) { 

var appmod = angular.module('project.DetailsServiceProvider', []); 
appmod.provider('DetailsProvider', function() { 
    this.$get = ['_$rest', function DetailServiceFactory(_$rest) { 
     return new DetailsProvider(_$rest); 
    }]; 
}); 

function DetailsProvider(_$rest) { 
    this._$rest = _$rest, 
    this.getDashboardDetails = function(_callback, _data) { 
     var newData = null; 
     _$rest.post({ 
      url: window.localStorage.getItem('contextPath') +'home/listdetail', 
      data: {} , 
      onSuccess:_callback 
      } 
     }); 

    } 
}; 

})(window.angular); 

預先感謝任何樣的答覆!

+0

正是我想知道的是函數的成功值(在構造函數)如何才能傳遞給控制器​​?有一點需要注意的是該調用在提供商 –

回答

1

您應該從您的服務方法中返回promise,並在您的控制器中執行then

根本原因:您正在迴歸,這將initalized後完成AJAX call.Before完成之後,你是返回,這將是總是空同一個變量的newData

在供應商,

(function(angular) { 

var appmod = angular.module('project.DetailsServiceProvider', []); 
appmod.provider('DetailsProvider', function() { 
    this.$get = ['_$rest', function DetailServiceFactory(_$rest) { 
     return new DetailsProvider(_$rest); 
    }]; 
}); 

function DetailsProvider(_$rest) { 
    this._$rest = _$rest, 
    this.getDashboardDetails = function(_callback, _data) { 
     var newData = null; 
     _$rest.post({ 
      url: window.localStorage.getItem('contextPath') +'home/listdetail', 
      data: {} , 
      onSuccess:_callback 
      } 
     });   
    } 
}; 

})(window.angular); 

和控制器,

$scope.list = function() { 
    DetailsService.getDashboardDetails(function(data){ 

      varr holdIt = data.data.DList; 

     }); 
}; 
+0

DetailsS​​ervice是我的一個提供者.. _ $ rest被定義了一個。應通過如上所述..現在我更改名稱請檢查與該 –

+0

ü使事情非常複雜。爲什麼你需要提供商。只需使用服務API。請檢查編輯 –

+0

這是結構必須遵循..我無法改變這個事情......而且很難被卡住......而我對此很陌生。構造函數提供者和控制器這些都是必需的 –

相關問題