Model view controller 如何使用MVP将AngularJS日历绑定到REST资源

Model view controller 如何使用MVP将AngularJS日历绑定到REST资源,model-view-controller,data-binding,angularjs,fullcalendar,angularjs-directive,Model View Controller,Data Binding,Angularjs,Fullcalendar,Angularjs Directive,我无法实现REST资源和AngluarJS日历控件之间的绑定。似乎我遗漏了一些东西,或者只是不符合逻辑,因为只要有单独的组件,所有组件都在工作。我将此Plunker用作日历实现的示例: 在视图内部: ... <div ng-controller="CalendarCtrl" dev-calendar="uiConfig.calendar" class="span8 calendar" ng-model="eventSources" style="padding-top: 30px;">

我无法实现REST资源和AngluarJS日历控件之间的绑定。似乎我遗漏了一些东西,或者只是不符合逻辑,因为只要有单独的组件,所有组件都在工作。我将此Plunker用作日历实现的示例:

在视图内部:

...
<div ng-controller="CalendarCtrl" dev-calendar="uiConfig.calendar" class="span8 calendar" ng-model="eventSources" style="padding-top: 30px;"></div>
...
现在,我尝试进行一个简单的绑定,如:

 $scope.events = [{title: $scope.pendingobjects.objectsData[0].title , type:'birthday', start: new Date(y, m, 1)}]
但由于异步行为,其“未定义”。如果我将整个$scope.events放在响应函数中(如下所示),日历将不再工作

 // getPendingObjectsByUser
            $scope.pendingobjects = MainModel.pendingObjectsByUser.get(
                    {userId : $rootScope.currentUser.userId}, 
                        function(response) {                    

                            // do something
                            $scope.events = [{type:'birthday', title:'$scope.pendingobjects.objectsData[0].title',start: new Date(y, m, 1)}]                                                                                        

 }, function(response) {

                        if(response.status == 404) {
                            $location.path('/notFound');
                        } else if (response.status == 500) {
                            $location.path('/error');
                        }       

                    })

我是否需要用承诺来工作,还是仅仅因为看到自己的错误而感到困惑

为什么不直接将事件绑定到资源? 像这样:

$scope.events = function (start, end, callback) {
  var events = MainModel.pendingObjectsByUser.get({
    userId : $rootScope.currentUser.userId
  });

  // Promise 
  events.$promise.then(function (val) {
          $scope.events = events;
          callback($scope.events);
      }
  );
};
      $scope.eventSources = [$scope.events];
$scope.events = function (start, end, callback) {
  var events = MainModel.pendingObjectsByUser.get({
    userId : $rootScope.currentUser.userId
  });

  // Promise 
  events.$promise.then(function (val) {
          $scope.events = events;
          callback($scope.events);
      }
  );
};
      $scope.eventSources = [$scope.events];