2017-05-25 60 views
-1

我想说明一个DOM从工厂微调图像的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) 
     } 
     }) 
    } 
    }) 
+0

我仍然在等待之前在你的问题的回应:https://stackoverflow.com/questions/44085782/show-image- md-select-md-options-on-hover-in-angularjs-1-6 ..你能否在我的回答中提供一些反馈?我解决了这个问题中的问题,并花了我1个多小时。如果你能提供一些反馈意见,这将是很高兴的 – lin

回答

0

我觉得你的目的是要显示spinner在应用程序中的所有HTTP请求。我使用的是angular-block-ui模块。

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

而且它不是一个好主意,访问来自工厂的一些DOM元素。工厂是为做一些可重用代码,可以注入到你的控制器,指令等

自动禁止

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

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

利用在block-uirequestFilter选项来过滤你的要求,如果你不想表现出来的所有请求。

如果您选择手动阻止,请使用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/

+0

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

+0

请参阅此http:// plnkr.co/edit/qflWqd?p=preview – Sreekumar