小编ben*_*ope的帖子

如何在ngMaterial中禁用ngAria?

ngAria(一个辅助功能模块)正在为我的Angular Material项目添加一个不必要的bower导入 - 现在它正在抛出警告:

节点上缺少可访问性所需的属性"aria-label"

我只添加了ngAria,因为它似乎是ngMaterial所必需的.我的应用程序不需要屏幕阅读器可访问性.

无论如何,我如何从ngMaterial中删除ngAria?或者至少禁用所有警告.

编辑: 似乎禁用ngAria警告的唯一简单方法是console.warn = function() {};关闭浏览器的警告(我不建议这样做,因为它可能会隐藏与咏叹调无关的警告)

wai-aria angularjs-material

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

使用RxJS承诺.all()

我正在Angular 2中编写一个应用程序,我想执行几个http请求并在响应上运行一个函数.

在Angular 1中,我会写类似的东西 $q.all([$http.get(...), $http.get(...), ...]).then(doSomethingWithResponses);

但Angular 2返回RxJS Observables,经过一堆阅读后,我仍然无法弄清楚如何得到几个http请求的响应.怎么能这样呢?

rxjs angular

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

Cordova Media插件与HTML5音频

我的Cordova应用程序目前有两种播放音频的方式,一种适用于Web应用程序,另一种适用于跨平台本机应用程序.

  • HTML5 for Web HTML:<audio id="audio" src="audio.mp3"></audio>JS:document.getElementById('audio').play();
  • 适用于移动 JS的Cordova插件new Media('audio.mp3').play();

我不是两次写东西的粉丝.是否有适用于网络和移动设备的音频解决方案?还是优雅的后备方式?

cordova ionic-framework

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

如何在WebApp2中解析Angular POST请求

如何从Google App Engine WebApp2中的Angular POST请求中获取数据? self.request.body返回一个字符串,不self.request.get(key)返回任何内容.

提交POST的Angular代码是:

$http.post("/mail", {request_name: 'Test Name', request_body: 'Test Body'});
Run Code Online (Sandbox Code Playgroud)

然后我的WebApp2处理程序中的这两行:

print "1:  " + self.request.body
print "2:  " + self.request.get('request_name')
Run Code Online (Sandbox Code Playgroud)

打印此:

1:  {"request_name":"Test Name","request_body":"Test Body"}
2:  
Run Code Online (Sandbox Code Playgroud)

从POST正文中获取数据的最佳方法是什么?或者我应该以不同方式发送请求?

google-app-engine webapp2 angularjs

8
推荐指数
1
解决办法
2672
查看次数

如何将表情符号水平居中?

似乎unicode表情符号字符在非视网膜显示器上溢出它的边界框,但它仍然在视网膜显示器上的字符边界内.那么如何在视网膜和非视网膜显示器上以水平方式将表情符号居中放置?

非视网膜:

在此输入图像描述

视网膜:

在此输入图像描述

这适用于视网膜屏幕,但在非视网膜显示屏上偏离了几个px:

<div style="text-align: center; width: 3rem; border: 1px solid red;"></div>
Run Code Online (Sandbox Code Playgroud)

这是一个CodePen来尝试https://codepen.io/anon/pen/GmzoNP.你需要一个视网膜和非视网膜屏幕来观察问题.

以下是我尝试过的一些想法.我还没有成功,但我认为最后两个是在正确的轨道上:

  • 文字对齐中心(毕竟是文字)
  • 宽度:0,左边距50%,变换:translateX(-50%)...
  • 改变字符宽度
  • 使用等宽字体

关于其他人如何解决这个问题的一些背景 - Slack和Google都只使用了表情符号的图像.这在我的情况下并不理想,因为它增加了包大小,并且需要一些额外的逻辑来处理复制/粘贴.

css emoji

6
推荐指数
1
解决办法
887
查看次数

OpenCL中的内存管理

当我开始在OpenCL中编程时,我使用以下方法为我的内核提供数据:

cl_mem buff = clCreateBuffer(cl_ctx, CL_MEM_READ_WRITE, object_size, NULL, NULL);
clEnqueueWriteBuffer(cl_queue, buff, CL_TRUE, 0, object_size, (void *) object, NULL, NULL, NULL);
Run Code Online (Sandbox Code Playgroud)

这显然要求我以块的形式对数据进行分区,确保每个块都适合设备内存.执行计算后,我用clEnqueueReadBuffer()读出数据.但是,在某些时候我意识到我可以使用以下行:

cl_mem buff = clCreateBuffer(cl_ctx, CL_MEM_READ_WRITE | CL_MEM_USE_HOST_PTR, object_size, (void*) object, NULL);
Run Code Online (Sandbox Code Playgroud)

执行此操作时,数据的分区已过时.令我惊讶的是,我的表现得到了极大的提升.这是我不明白的事情.从我得到的,当使用主机指针时,设备内存作为缓存工作,但所有数据仍然需要复制到它进行处理,然后一旦完成就复制回主内存.为什么使用显式副本(clEnqueRead/WriteBuffer)慢一个数量级,在我看来它应该基本相同?我错过了什么吗?

谢谢.

memory-management opencl

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

OpenCL - 为什么使用READ_ONLY或WRITE_ONLY缓冲区

OpenCL,在那里标记缓冲区任何性能优势READ_ONLY还是WRITE_ONLY

kernel是我经常看到的(a READ_ONLY和b是WRITE_ONLY):

__kernel void two_buffer_double(__global float* a, __global float* b)
{
    int i = get_global_id(0);
    b[i] = a[i] * 2;
}
Run Code Online (Sandbox Code Playgroud)

kernel似乎更好,因为它使用较少的全局内存(a是READ_WRITE):

__kernel void one_buffer_double(__global float* a)
{
    int i = get_global_id(0);
    a[i] = a[i] * 2;
}
Run Code Online (Sandbox Code Playgroud)

不要READ_ONLYWRITE_ONLY标志就是为了要帮助调试和捕获错误?

flags buffer kernel opencl pyopencl

5
推荐指数
3
解决办法
4213
查看次数

为什么使用pyopencl.array.Array

PyOpenCL有两种创建OpenCL缓冲区的方法:

pyopencl.Buffer 采用numpy数组并将其转换为缓冲区.

pyopencl.array.Array获取一个numpy数组并将其转换为PyOpenCL数组 - 一个可以像numpy数组一样编辑的对象,但在调用.data它时提供缓冲区.

是否存在选择其中一个的性能/功能原因?或者我应该只选择使我的代码更具可读性的那个?

gpgpu numpy opencl pyopencl

5
推荐指数
0
解决办法
512
查看次数

HUGE_VALF和INFINITY常量之间的差异

在OpenCL中,有两个表示无穷大的浮点数学常量.其中一个很简单INFINITY.另一方面,HUGE_VALF"评估"无限.

这两者有什么区别?"评估"无限是什么意思?

floating-point opencl

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

AngularJS单击TouchStart

角度触摸ngTouch会导致触摸释放时发生咔嗒声.

有没有办法让点击发生在触摸开始?

fast-click下面的指令似乎在触摸屏上做了我想要的,但它不适用于鼠标点击.

myApp.directive('fastClick', ['$parse', function ($parse) {
    return function (scope, element, attr) {
      var fn = $parse(attr['fastClick']);
      var initX, initY, endX, endY;
      var elem = element;

      elem.bind('touchstart', function (event) {
          event.preventDefault();
          initX = endX = event.touches[0].clientX;
          initY = endY = event.touches[0].clientY;
          scope.$apply(function () { fn(scope, { $event: event }); });
      });
    };
  }
]);
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-ng-touch

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