为什么angular-promise-tracker不能为我工作?

时间:2014-12-14 20:20:28

标签: javascript angularjs

我已经安装了angular-promise-tracker,我认为我已经接近它了。我遇到的问题是" loading"文字没有显示。数据被提取并在将其输出到控制台时显示。

因此ng-show="loadingTracker.active()"似乎无法正常工作。我无法看到我做错了什么。

任何对此的帮助都会得到真诚的感谢 - 一如既往:)

这是我的代码:

HTML

<button ng-controller="weatherCtrl" 
        ng-model="hotel" 
        class="btn btn-default" 
        ng-click="loadWeather(hotel, $index)">
        {{buttonText}} more</button>
<div collapse="isCollapsed">
    <div class="well well-lg more-detail">
        {{hotel.Description}}
        <br /><br />
            <div>
                <div class="my-super-awesome-loading-box" 
                     ng-show="loadingTracker.active()">
                     Loading..
                </div>                        
            </div>
    </div> 
</div>

JS

.controller('weatherCtrl', function ($scope, weather, $timeout, promiseTracker){
   $scope.loadingTracker = promiseTracker();
   $scope.buttonText= 'Load'
   $scope.loadedHotelDetails=[];
   $scope.loadWeather = function(hotel, index) {
      // console.log('loadWeather')           
      weather.get({tracker: $scope.loadingTracker}, function (data){
      console.log(data)
      $scope.loadedHotelDetails.push(index)
   })
})



angular.module('weather', [])
    .factory('weather', function($http) {
         var weather = {};
         weather.get = function(params, callback) {
            $http.get('/php/weather.php', {params: {tracker: params.tracker, page: params.page}}).success(function(data) {
             callback(data);
            });
         };
         return weather;
     });

2 个答案:

答案 0 :(得分:1)

我从未使用过这个模块,但是从github上的例子来看,我认为你应该在weather中这样称呼它:

     weather.get = function(params, callback) {
        $http.get('/php/weather.php', {tracker: params.tracker, page: params.page}).success(function(data) {
         callback(data);
        });
     };

答案 1 :(得分:0)

排序好了,这是我需要的代码:

.factory('weather', function($http) {
  var weather = {};
  weather.get = function(params) {
    return $http.get('/php/weather.php', {tracker: params.tracker, page: params.page});
  };
  return weather;
});