小编F L*_*has的帖子

强制重新加载指令的模板

我正在开发一个带有几个指令的AngularJS应用程序.指令的模板存储在单独的html文件中.编辑这些模板时,我的浏览器在重新加载后没有检测到任何更改,并且始终使用缓存版本.检测到源代码的任何其他更改并导致重新加载.

我想这个问题在某种程度上是$ templateCache,它似乎是AngularJS在加载模板时使用的.

我在AngularJS 1.0.2的源代码中找到的是4317行,它是compileTemplateUrl()的一部分:

$http.get(origAsyncDirective.templateUrl, {cache: $templateCache})
Run Code Online (Sandbox Code Playgroud)

我想知道是否有其他人有这种问题,如果有办法告诉AngularJS什么时候缓存,什么时候不.

javascript angularjs

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

如何使用Neo4J的Cypher查询返回关系类型?

我试图获得一个非常简单的Cypher查询的关系类型,如下所示

MATCH (n)-[r]-(m) RETURN n, r, m;
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会返回一个空对象r.这很麻烦,因为我无法区分不同类型的关系.我可以通过添加属性来修补此问题,[r:KNOWS {type:'KNOWS'}]但我想知道是否没有直接获取关系类型的方法.

我甚至按照官方的Neo4J教程(如下所述),展示了这个问题.

图表设置:

create (_0 {`age`:55, `happy`:"Yes!", `name`:"A"})
create (_1 {`name`:"B"})
create _0-[:`KNOWS`]->_1
create _0-[:`BLOCKS`]->_1
Run Code Online (Sandbox Code Playgroud)

查询:

MATCH p=(a { name: "A" })-[r]->(b)
RETURN *
Run Code Online (Sandbox Code Playgroud)

JSON RESPONSE BODY:

{
    "results": [
        {
            "columns": [
                "a",
                "b",
                "p",
                "r"
            ],
            "data": [
                {
                    "row": [
                        {
                            "name": "A",
                            "age": 55,
                            "happy": "Yes!"
                        },
                        {
                            "name": "B"
                        },
                        [
                            {
                                "name": "A",
                                "age": 55,
                                "happy": "Yes!" …
Run Code Online (Sandbox Code Playgroud)

neo4j cypher

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

检测浏览器对CSS动画SVG的支持

我正在玩CSS动画SVG元素并且遇到了这样的问题,即使所有使用的技术都被某些浏览器支持,但组合不是,即 - CSS动画DIV是工作但SVG元素不支持.我想知道是否有办法检测浏览器是否能够SVG使用动画元素CSS.

这是一个jsFiddle的例子.它适用于最新版本的Chrome,Firefox和Safari.但是当用例如Firefox 5打开它时,只有div旋转而rect不是.

css svg cross-browser feature-detection

21
推荐指数
1
解决办法
2410
查看次数

AngularJS Scope 1.0.x和1.2.x之间的差异

在下一个稳定的AngularJS发布时,我正在将我的应用程序从1.0.8迁移到1.2.

在AngularJS 1.0.8中,可以为指令设置一个独立的范围follow.然后该指令将使用其自己的test()函数而不是控制器的test()函数.

HTML

<my-dialog property="something">
    <button ng-click="test()">Load Test</button>
    Check out the test: "{{ testMessage }}"
</my-dialog>
Run Code Online (Sandbox Code Playgroud)

使用Javascript

  .controller('Ctrl', function(scope) {
    scope.test = function () {
       scope.testMessage = 'CTRL Test loaded! Whooops.';
    }
  })

  .directive('myDialog', function() {
    return {
      restrict: 'E',
      scope: {
          property: '='
      },
      link: function(scope) {
          scope.test = function () {
            scope.testMessage = 'Isolated Test loaded. Yes!';
          }
      }
    };
Run Code Online (Sandbox Code Playgroud)

在AngularJS 1.2中,此行为不再起作用.单击该按钮可立即触发控制器的test()功能.

看到这个jsFiddle比较: …

javascript angularjs angularjs-directive

12
推荐指数
1
解决办法
2932
查看次数

从PIXI.js中的兄弟或父DOM元素捕获鼠标事件

我想在两个层上捕获鼠标事件:PIXI的画布和覆盖div.我有以下类型的HTML设置的地方div.overlay上面是canvas.pixi:

<div class="parent">
  <canvas class="pixi"></canvas>
  <div class="overlay"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

PIXI交互工作正常,canvas但是当画布重叠时我无法捕获任何事件div.overlay.

我发现setTargetElement似乎让我们为捕获元素定义DOM元素,我试着像这样使用它:

const renderer = PIXI.autoDetectRenderer(...);
renderer.plugins.interaction.setTargetElement(document.querySelector('.overlay'));
Run Code Online (Sandbox Code Playgroud)

使用这种技术,我能够捕获mousemove事件,但不幸的clickmousedown,等等不起作用.

我还尝试复制捕获的原始事件,div.overlay并复制和发送事件,canvas如下所示,但这也不起作用.

document.querySelector('.overlay').addEventListener('mousedown', (e) => {
  const eventCopy = document.createEvent('MouseEvents');
  eventCopy.initMouseEvent(
    e.type, e.bubbles, e.cancelable, e.view,
    e.detail, e.pageX || e.layerX,
    e.pageY || e.layerY, e.clientX,
    e.clientY, e.ctrlKey, e.altKey, e.shiftKey,
    e.metaKey, e.button, e.relatedTarget
  );

  document.querySelector('.pixi').dispatchEvent(eventCopy);
});
Run Code Online (Sandbox Code Playgroud)

有没有办法在重叠的DOM元素上捕获鼠标事件并将事件传递给PIXI?

为什么?

我想与PIXI元素进行交互,同时能够利用D3的缩放和画笔功能,目前正在重叠的div上处理.

更新和代码示例

我设法转发事件,所有但点击事件都由PIXI注册.点击事件可以通过重新触发pointerdownpointerup事件手动触发.查看https://jsfiddle.net/v3chhhjk/1/

javascript mouseevent pixi.js

10
推荐指数
1
解决办法
1108
查看次数

如何在Conda environment.yml中指定版本范围

是否可以在Conda软件包的environment.yml文件中指定版本范围?

官方文件中提到,依靠星号(*)的几个例子,我想如果这是唯一的功能或康达是否支持其他更为复杂的版本范围如由NPM支持

例如,是否可以安装任何更高或更高的补丁程序版本1.2.3(例如,1.2.10可以,但是1.3.0不行)?

python environment conda miniconda

10
推荐指数
2
解决办法
1137
查看次数

使用JavaScript检测硬重载

为了澄清:不是要尝试区分刷新和重新加载,因此这不是刷新和重新加载的重复.我试图找出是否有办法检测用户何时触发重载而不是正常重新加载.我问,因为我想在重载之前执行一些代码.


使用JavaScript,通过浏览器的重新加载按钮,或通过Shift+ Ctrl+ 等快捷方式R,可以执行浏览器选项卡的重载.是否可以使用JavaScript 检测这样的重载?如果是这样的话?

我知道可以检测到事件触发正常重载事件的onbeforeunload时间,我可以找出导航类型来区分刷新和重新加载,但我无法检测到硬重载.

到目前为止,我使用以下JS代码来检测重新加载:

window.addEventListener('beforeunload', function (e) {
  // Cancel the event
  e.preventDefault();
  // Chrome requires returnValue to be set
  e.returnValue = '';

  // For older browsers
  console.log('Is reloading?', event.currentTarget.performance.navigation.type === 1);

  // For modern browsers
  const perfEntries = performance.getEntriesByType("navigation");

  for (let i = 0; i < perfEntries.length; i++) {
    console.log('Is reloading? ', perfEntries[i].type === 1); …
Run Code Online (Sandbox Code Playgroud)

javascript browser reload

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

克隆一个 react 的合成事件实例

使用 vanilla JS 可以像这样克隆一个事件实例:

const cloneEvent = event => new event.constructor(event.type, event);
Run Code Online (Sandbox Code Playgroud)

可用于将事件事件从一个 DOM 元素转发到另一个元素。例如,

const buttonA = document.querySelector('#a');
const buttonB = document.querySelector('#a');

const clickHandler = (type, forwardTo) => event => {
  console.log(type, 'was clicked');
  if (forwardTo) forwardTo.dispatchEvent(cloneEvent(event));
};

buttonA.addEventListener('click', clickHandler('A', buttonB));
buttonA.addEventListener('click', clickHandler('B'));
Run Code Online (Sandbox Code Playgroud)

当您单击 A 时,您还将看到两个按钮的 2 个日志记录。

我想用 React 的SyntheticEvent实现同样的效果,但我遇到的问题大概是因为 SyntheticEvent 的实例化方式与本机事件不同。这是说明问题的现场演示:https : //jsfiddle.net/2Lhsfceu/2/(请参阅开发控制台日志)

我目前的解决方案是克隆本机事件 ( SyntheticEvent.nativeEvent) 如下(更新和工作现场演示:https : //jsfiddle.net/2Lhsfceu/1/

const cloneEvent = event => {
  const nativeEvent = …
Run Code Online (Sandbox Code Playgroud)

javascript events reactjs

7
推荐指数
1
解决办法
647
查看次数

如何下载GitHub版本的二进制文件?

我有一个包含二进制文件的仓库,我需要它.

我可以

git checkout tags/thetagoftherelease
Run Code Online (Sandbox Code Playgroud)

这似乎检查正确的标签,但不会拉下二进制文件.如何下载添加到发行版的二进制文件(发行版中的绿色框)?

在发行版中添加了二进制文件的图片.

在此输入图像描述

tags git binary release github

6
推荐指数
2
解决办法
9558
查看次数

通过 environment.yml 使用 conda 安装 npm 包

我想知道是否可以通过 conda 的environment.yml文件直接安装 npm 包。我知道可以直接安装pypi软件包,pip如下所示:

name: docs
channels:
  - conda-forge

dependencies:
  - python>=3.7
  - nodejs=10.*
  - pip
  - pip:
    - Sphinx==1.6.5
Run Code Online (Sandbox Code Playgroud)

我尝试将其添加npm为依赖项,因为它是通过安装的,nodejs但不幸的是,这不起作用。

name: docs
channels:
  - conda-forge

dependencies:
  - python>=3.7
  - nodejs=10.*
  - pip
  - pip:
    - Sphinx==1.6.5
  - npm:
    - jsdoc
Run Code Online (Sandbox Code Playgroud)

?? 不起作用。

我知道我可以jsdoc在使用安装 conda 环境后安装,npm install -g jsdoc但我很好奇是否有办法集成安装。

python node.js npm conda

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