私はプロバイダーを持っています:
AdviceList.provider('$adviceList',function(){
this.$get = function ($rootScope,$document,$compile,$http,$purr){
function AdviceList(){
$http.post('../sys/core/fetchTreatments.php').success(function(data,status){
this.treatments = data;
console.log(this.treatments); // the correct object
});
this.adviceCategories = [
// available in the controller
];
}
return{
AdviceList: function(){
return new AdviceList();
}
}
}
});
さらに、私はこのコントローラーを持っています:
AdviceList.controller('AdviceListCtrl',function($scope,$adviceList){
var adv = $adviceList.AdviceList();
$scope.treatments = adv.treatments; // undefined
});
コントローラー$scope.treatments
が未定義のままであるのに、this.treatments
プロバイダー内で正しく入力されているのはなぜですか? また、adviceCategories
私のコントローラーで利用可能です。