无法从遗留代码更新角度视图

时间:2015-01-06 16:32:50

标签: javascript angularjs

我正面临以下问题

  1. 遗留代码中的广播事件。
  2. 使用$ scope。$ on来获取活动。
  3. 用于解析新数据的事件调用api方法。
  4. 更新视图结果 - 没有任何反应。
  5. 我使用了我能找到的所有技术:

    1. $ scope。$ apply - 导致$ digest已在进行中
    2. 使用$ timeout功能,没有任何反应
    3. 使用范围适用于$ timeout内部 - 没有任何反应。
    4. 如果有人可以帮我欣赏,我不知道该怎么办。

      这是代码:

      var injector;
      angular.element(document).ready(function() {
          injector = angular.bootstrap(document, ['myApp']);
      });
      

      关于javascript遗留代码:

      function sendRefresh()
      {
          injector.invoke(['CommonService', function(CommonService){
              CommonService.broadcast_from_legacy('refresh-content');
          }]);
      }
      
      控制器上的

      $scope.$on('refresh-content',
                  function () {
                      $scope.refresh_data(true);
      
                  });
      
      $scope.refresh_data = function()
              {
                  CommonService.get_homepage_from_server().then(function(result_data){
      
                      $scope.messages = result_data.messages;
                  });
              };
      

      我看到函数被调用,新数据到了,但视图没有刷新。

      我也试过了:

       $scope.refresh_data = function(shouldApply)
              {
                  CommonService.get_homepage_from_server().then(function(result_data){
      
                      if (shouldApply == true)
                      {
                          $timeout(function() {
                              $scope.$apply(function(){
                                  $scope.messages = null;
                              });
                          });
                      }
                      else
                      {
                          $scope.messages = result_data.messages;
                      }
                  });
              };
      

      并且:

        $scope.refresh_data = function()
          {
              CommonService.get_homepage_from_server().then(function(result_data){
                  $timeout(function() {
                      $scope.messages = result_data.messages[0];
                  });
              });
              };
      

      但我得到的结果相同。

      由于

0 个答案:

没有答案