0

私はプロバイダーを持っています:

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私のコントローラーで利用可能です。

4

2 に答える 2