ngAria(一个辅助功能模块)正在为我的Angular Material项目添加一个不必要的bower导入 - 现在它正在抛出警告:
节点上缺少可访问性所需的属性"aria-label"
我只添加了ngAria,因为它似乎是ngMaterial所必需的.我的应用程序不需要屏幕阅读器可访问性.
无论如何,我如何从ngMaterial中删除ngAria?或者至少禁用所有警告.
编辑: 似乎禁用ngAria警告的唯一简单方法是console.warn = function() {};
关闭浏览器的警告(我不建议这样做,因为它可能会隐藏与咏叹调无关的警告)
我正在Angular 2中编写一个应用程序,我想执行几个http请求并在响应上运行一个函数.
在Angular 1中,我会写类似的东西 $q.all([$http.get(...), $http.get(...), ...]).then(doSomethingWithResponses);
但Angular 2返回RxJS Observables,经过一堆阅读后,我仍然无法弄清楚如何得到几个http请求的响应.怎么能这样呢?
我的Cordova应用程序目前有两种播放音频的方式,一种适用于Web应用程序,另一种适用于跨平台本机应用程序.
<audio id="audio" src="audio.mp3"></audio>
JS:document.getElementById('audio').play();
new Media('audio.mp3').play();
我不是两次写东西的粉丝.是否有适用于网络和移动设备的音频解决方案?还是优雅的后备方式?
如何从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正文中获取数据的最佳方法是什么?或者我应该以不同方式发送请求?
似乎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.你需要一个视网膜和非视网膜屏幕来观察问题.
以下是我尝试过的一些想法.我还没有成功,但我认为最后两个是在正确的轨道上:
关于其他人如何解决这个问题的一些背景 - Slack和Google都只使用了表情符号的图像.这在我的情况下并不理想,因为它增加了包大小,并且需要一些额外的逻辑来处理复制/粘贴.
当我开始在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)慢一个数量级,在我看来它应该基本相同?我错过了什么吗?
谢谢.
在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_ONLY
和WRITE_ONLY
标志就是为了要帮助调试和捕获错误?
PyOpenCL有两种创建OpenCL缓冲区的方法:
pyopencl.Buffer
采用numpy数组并将其转换为缓冲区.
pyopencl.array.Array
获取一个numpy数组并将其转换为PyOpenCL数组 - 一个可以像numpy数组一样编辑的对象,但在调用.data
它时提供缓冲区.
是否存在选择其中一个的性能/功能原因?或者我应该只选择使我的代码更具可读性的那个?
在OpenCL中,有两个表示无穷大的浮点数学常量.其中一个很简单INFINITY
.另一方面,HUGE_VALF
"评估"无限.
这两者有什么区别?"评估"无限是什么意思?
角度触摸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)