Angularjs 数据未显示-意外的令牌函数

Angularjs 数据未显示-意外的令牌函数,angularjs,Angularjs,不确定我有什么错,但它没有显示我与angular with code academy一起创建的日历应用程序中的数据,有什么想法吗 我在控制台中得到了这个错误消息 day.html <h2 class="date">{{ days.date | date }}</h2> <div class="event" ng-repeat="event in days.events"> <a href="#/{{$i

不确定我有什么错,但它没有显示我与angular with code academy一起创建的日历应用程序中的数据,有什么想法吗

我在控制台中得到了这个错误消息

day.html

        <h2 class="date">{{ days.date | date }}</h2>
        <div class="event" ng-repeat="event in days.events">
          <a href="#/{{$index}}">
            <h3 class="name">{{event.name}}  </h3>
            <p><span class="from"> {{event.from | date}} </span> - <span class="to"> {{event.to | date}} </span></p>
          </a>
        </div>
events.js

app.factory('events',['$http', function($http){
    return $http.get('https://s3.amazonaws.com/codecademy-content/courses/ltp4/events-api/events.json')
  .success(function(data){
    return data;
  })
  .error(function(err){
    return err;
  });
}]);

您的代码当前的问题是,您没有返回
$http
承诺,我的意思是您已经返回了它,但您应用了
。成功
&
错误
回调该承诺,这限制了您的代码遵循承诺链

应用程序工厂代码应返回已由
$http.get
返回的承诺。我还要说的是,工厂应该有一些方法,以便将来可以很容易地扩展它

工厂

app.factory('events',['$http', function($http){
    var events = {};
    events.getData = function(){
        return $http.get('https://s3.amazonaws.com/codecademy-content/courses/ltp4/events-api/events.json');
    };    
}]);
控制器

app.controller('DayController', ['$scope', 'events', function($scope, events) {
  events.getData().then(function(response) {
    $scope.days = response.data;
  });
}]);

您的代码当前的问题是,您没有返回
$http
承诺,我的意思是您已经返回了它,但您应用了
。成功
&
错误
回调该承诺,这限制了您的代码遵循承诺链

应用程序工厂代码应返回已由
$http.get
返回的承诺。我还要说的是,工厂应该有一些方法,以便将来可以很容易地扩展它

工厂

app.factory('events',['$http', function($http){
    var events = {};
    events.getData = function(){
        return $http.get('https://s3.amazonaws.com/codecademy-content/courses/ltp4/events-api/events.json');
    };    
}]);
控制器

app.controller('DayController', ['$scope', 'events', function($scope, events) {
  events.getData().then(function(response) {
    $scope.days = response.data;
  });
}]);

让工厂直接返回$http.get

app.factory('events',['$http', function($http){
    return $http.get('https://s3.amazonaws.com/codecademy-content/courses/ltp4/events-api/events.json')
}]);
这将返回一个承诺,该承诺将在控制器中解析为您当前正在执行的操作

events.then(function(res) {
    $scope.days = res.data;
});

为了获得更好的解决方案,可以使用resolve并将解析后的数据注入控制器。签出一个示例

让工厂简单地返回$http.get

app.factory('events',['$http', function($http){
    return $http.get('https://s3.amazonaws.com/codecademy-content/courses/ltp4/events-api/events.json')
}]);
这将返回一个承诺,该承诺将在控制器中解析为您当前正在执行的操作

events.then(function(res) {
    $scope.days = res.data;
});

为了获得更好的解决方案,可以使用resolve并将解析后的数据注入控制器。签出一个示例

错误必须指向抛出错误的位置,对您没有帮助吗?错误必须指向抛出错误的位置,对您没有帮助吗?使用
。成功
&
。错误
已弃用..&使用这种格式的工厂将不会在将来提供扩展功能。请参阅我使用的剩余部分。。关于我提到的评论,请看我的回答1.我的回答是关于他犯的错误。至于更好的解决方案,我建议使用resolve而不是注入服务本身。不推荐使用
.success
&
.error
使用这种格式的工厂将不会在将来提供扩展功能。请参阅我使用的剩余部分。。关于我提到的评论,请看我的回答1.我的回答是关于他犯的错误。至于更好的解决方案,我建议使用resolve而不是注入服务本身。