小编mik*_*kew的帖子

监视AngularJS指令中元素的类更改

将类添加到元素时,我想向该元素添加另一个类.删除类时,我想删除一个元素.我基本上将一些引导类映射到一些角形式验证类,但是当从一个元素添加/删除一个类时,我无法弄清楚如何触发我的代码(同时确保不会导致一些无限循环的类更改) .

以下是我迄今为止的指示:

.directive('mirrorValidationStates', ['$log', function($log) {
  function link(scope,element,attrs) {
    scope.$watch(element.hasClass('someClass'), function(val) {
      var classMap = {
        'popupOn': 'has-error',
        'ng-valid': 'has-success'
      };

      for (var key in classMap) {
        if (element.hasClass(key)) {
          $log.info("setting class " + classMap[key]);
          element.parent().addClass(classMap[key]);
        } else {
          $log.info("removing class " + classMap[key]);
          element.parent().removeClass(classMap[key]);
        }
      }
    });
  }
  return {
    link: link
  };
}]);
Run Code Online (Sandbox Code Playgroud)

所以基本上,当popupOn添加到元素时,我想将has-error引导类添加到父元素.何时popupOn删除,我想删除has-error.

我想在Angular中实现这一目标是什么?也许有ng-class而不使用指令?

非常感谢!

javascript angularjs angularjs-directive

27
推荐指数
1
解决办法
4万
查看次数

如何使用anyevent进行异步www-mechanize

我一直在对这个主题进行大量的研究,虽然有一些问题与我有关,但我真的很难理解如何使用AnyEvent和www-mechanize正确地进行异步编程.我正在努力坚持机械化,因为它有一个干净的界面,并且内置了我期望的功能:(比如获取网站的所有图像等).如果没有可靠/好的方法来做我想做的事情,那么我将开始关注AnyEvent :: HTTP,但我想我会先朝那个方向询问.

我是AnyEvent编程的新手,但之前用回调做了大量的perl和javascript/jquery异步调用.这些对我来说很有意义,但它不是用AnyEvent + Mech点击我.

这是我正在处理的代码,它从上游队列中提取URL.给出URL,我想得到一个说明拉入页面上的所有图像,然后异步.抓住所有图像.

所以伪代码看起来像这样:

  • 从队列中抓取网址
  • 得到页面
  • 获取所有img url链接
  • 在img urls上执行许多异步调用(例如在后端存储imgs)

我读过,我不能(在研究错误之后)在AnyEvent回调中阻塞.如何构建我的程序以进行异步调用而不阻塞?

AE事件只能在AE感知功能阻止时处理,所以我使用的是LWP :: Protocol :: AnyEvent :: http.它用可识别AE的AnyEvent :: HTTP替换LWP(Net:HTTP)的普通HTTP后端.

工作人员创建如下:

my Worker->new(upstream_job_url => "tcp://127.0.0.1:5555', run_on_create => 1);
Run Code Online (Sandbox Code Playgroud)

异步部分是sub _recv_msg,它调用_proc_msg.

我已经有一个AnyEvent循环,根据ZeroMQ perl绑定文档观察ZeroMQ套接字...

任何帮助非常感谢!

码:

package Worker;

use 5.12.0;

use Moose;
use AnyEvent;
use LWP::Protocol::AnyEvent::http;

use ZMQ::LibZMQ3;
use ZMQ::Constants qw/ZMQ_PUSH ZMQ_PULL ZMQ_POLLIN ZMQ_FD/;

use JSON;
use WWW::Mechanize;
use Carp;
use Coro;


has 'max_children' => (
    is => 'rw',
    isa => 'Int',
    required => 1,
    default …
Run Code Online (Sandbox Code Playgroud)

perl asynchronous www-mechanize zeromq anyevent

5
推荐指数
1
解决办法
1612
查看次数

使用withCredentials和客户端证书使用jQuery的CORS请求失败

我无法弄清楚为什么这个CORS请求无法返回数据.

我在后端使用Catalyst MVC,使用Firefox 24.0作为浏览器.jQuery 1.9.1.请注意以下事项:

  1. otherdomain.com需要客户端证书.
  2. 直接命中资源会返回预期的数据.(https://otherdomain.com/resource/1)返回正确的数据.

我有一个测试请求的简单页面:

<script type='text/javascript'>
                function get_data() {
                        console.log("running");
                        $.ajax({
                                url: "https://otherdomain.com/resource/1",
                                dataType: 'json',
                                type: 'GET',
                                xhrFields: {
                                        'withCredentials': true
                                },
                                crossDomain: true
                        }).success(function(data) {
                                console.log(data)
                                $('#output').html(data);
                        }).error(function(xhr, status, error) {
                                alert("error");
                                console.log(xhr);
                        });
                }

    $(document).ready(function() {
            get_data();
    });
    </script>

</script>
Run Code Online (Sandbox Code Playgroud)

这是我的请求标题:

GET /resource/1 HTTP/1.1
Host: otherdomain.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Referer: https://mydomain.com/test.html
Origin: https://mydomain.com
Connection: …
Run Code Online (Sandbox Code Playgroud)

ajax jquery cross-domain cors

5
推荐指数
1
解决办法
2万
查看次数