如何显示角度工厂的dom

Posted

技术标签:

【中文标题】如何显示角度工厂的dom【英文标题】:How to show a dom from angular factory 【发布时间】:2017-10-25 15:09:08 【问题描述】:

我想显示一个带有工厂微调器图像的 dom,我尝试使用 jquery,$rootScope 来显示 dom,但没有成功,

下面是我的工厂代码,

.factory('api', function($q, $http, $state, $timeout, $rootScope, $window) 
    var request = function(callback, timeout) 
      var deferred = $q.defer();

      $timeout(function() 
        deferred.resolve(null);
      , typeof timeout !== 'undefined' ? timeout : 800);

      callback(deferred);

      return deferred.promise;
    ;

    return 
      postData: postData
    ;

    function postData(data) 
      var $ = angular.element;
      $.sg= true;
      return $http.post('/a/', data).then(function(response) 
          $timeout(function () window.location.href = "/bdc";, 10000)
        
      )
    
  )

【问题讨论】:

我还在等待您之前的问题的答复:***.com/questions/44085782/… .. 您能否就我的回答提供一些反馈?我在那个问题中解决了你的问题,我花了 1 个多小时。如果您能提供一些反馈,我们会很高兴 【参考方案1】:

我认为您的意图是为您的应用程序中的所有 Http 请求显示spinner。我使用的是angular-block-ui 模块。

http://angular-block-ui.nullest.com/#!/examples/documentation

从工厂访问一些 DOM 元素也不是一个好主意。 Factory 旨在做一些可重用的代码,这些代码可以注入到您的控制器、指令等中。

自动拦截

默认情况下,BlockUI 模块会在 Angular 启动时启动一个块 $http 服务有一个待处理的请求。如果你不想要这种行为 并且想要手动执行所有阻止,您可以将此值更改为 假的。

// Disable automatically blocking of the user interface
blockUIConfig.autoBlock = false;

如果您不想为所有请求显示它,请使用block-ui 中的requestFilter 选项来过滤您的请求。

如果您选择手动阻止,请使用start()stop() 方法来显示和隐藏阻止。

<div block-ui="myBlockUI">
  <p> ... I'm blockable ... </p>
</div>

block-ui 指令采用可选值,可用于 获取关联的 blockUI 服务的实例。

// Get the reference to the block service.
var myBlockUI = blockUI.instances.get('myBlockUI');

// Start blocking the element.
myBlockUI.start();

$timeout(function() 
  // Stop the block after some async operation.
  myBlockUI.stop();
, 1000);

上述阻塞预计由控制器而不是工厂完成。

手动拦截示例:http://plnkr.co/edit/qflWqd?p=preview

自动屏蔽示例:http://embed.plnkr.co/NqyunD/

【讨论】:

在这种情况下,我可以在bdc url的解析中使用微调器来检查响应是否完成,如果我错了,请纠正我

以上是关于如何显示角度工厂的dom的主要内容,如果未能解决你的问题,请参考以下文章

抽象工厂模式

在角度工厂上使用套接字

工厂模式之简单工厂模式

设计模式:抽象工厂模式

jQuery分析 - $工厂函数分析

工厂模式 ioc dom4j 反射之我的一点理解