小编bma*_*ton的帖子

Vuejs - 冒泡的自定义活动

有没有办法在组件中使用组件时允许事件冒泡?

我的应用程序是一个动态菜单.动态菜单是一个组件(dyn-menu),它menu-item为每个<li>元素使用本地组件().每个<menu-item>都有一个与之关联的点击处理程序,它发出一个自定义事件(在完整实现中具有菜单项的ID).但是应用程序没有看到发布的事件,<menu-item>因为它们没有冒出来.

有没有办法允许<menu-item>组件本地的<dyn-menu>组件发出事件,仍然允许vapp查看和处理事件?

我对Vuejs很新,所以我可能会遗漏一些明显的东西.而且我可能试图通过使用两个组件来解决这个问题,而这并不是处理它的最佳方法.是否有更好的方法来接近它?

这是一个jsfiddle.您必须删除模板中的@dyn-menu-item-click='itemClick'行,<dyn-menu>以说明如果组件不处理事件,事件不会冒泡.如果删除该行<dyn-menu>,则不处理该事件但vapp从未看到该事件.

javascript event-handling vue.js

8
推荐指数
2
解决办法
2866
查看次数

使用callable(x)vs.hasattr(x,"__ call__")

我正在编写针对3.2及更高版本的Python.看起来使用内置函数callable是最简单有效的方法.我见过的建议hasattr(x, "__call__"),collections.Callable(x)以及只使用try/except周围尝试的呼叫.

我已经测试了可调用的项目(类和函数),使用timeit100,000次迭代; 在两种情况下,使用callable只需要检查属性的大约75%的时间.当项目不可调用(整数和字符串)时,使用与类或函数相同的可调用停留时,检查属性的价格比类或函数贵2.3倍.我没想到会有这种差异,但它也倾向于采用简洁明了的callable(x)方法.

但我相对较新的Python而且没有专家,所以我不知道我应该使用hasattr方法或其他方法吗?

FWIW,各种时间的结果如下.第一个字符只是t表示timeit,第二个字符表示被测对象的类型(c = class,f = function,i = integer,s = string),其余表示方法(attr-check属性, call - use callable,try - use try/except).

tcattr 0.03665385400199739
tccall 0.026238360142997408
tctry 0.09736267629614304
tfattr 0.03624538065832894
tfcall 0.026362861895904643
tftry 0.032501874250556284
tiattr 0.08297350149314298
ticall 0.025826044152381655
titry 0.10657657453430147
tsattr 0.0840187013927789
tscall 0.02585409547373274
tstry 0.10742772077628615

python callable python-3.x

7
推荐指数
3
解决办法
1226
查看次数

$ router.replace()不会更新浏览器查询字符串

问题是查询字符串未显示在浏览器的URL栏中。

该代码更新查询字符串,以便跟踪产品配置。

有两种方法-第一种选择模型,第二种为该模型设置选项。这是代码(查询字符串的值现在是占位符):

方法:

chooseModel (option) {
  this.$router.replace({
    path: this.$route.path,
    query: {m: 'model'},
  })
},
choose (option) {
  if (!this.selectedModel) return
  let opt = {}
  opt[option] = option
  this.$router.push({          // I've tried push and replace
    path: this.$route.path,
    query: Object.assign(this.$route.query, opt),
  })
},
Run Code Online (Sandbox Code Playgroud)

计算:

selectedModel () {
  return this.$route.query.m
},
Run Code Online (Sandbox Code Playgroud)

chooseModel被调用的查询字符串,浏览器显示显示为它应该:http://localhost:8080/custom/?m=model。但是,当choose调用时,浏览器显示的查询字符串保持不变。

FWIW,我更改了代码chooseModel以设置多个查询字符串值,它们都显示出来。显然,它正在尝试修改导致问题的值。

使用调试器,我可以看到这$route.query是正确的-它反映了我对查询所做的更改。

我在Firefox和Chrome上都看到了相同的行为,因此它显然不是特定于浏览器的。

我需要做什么才能使浏览器显示更新的查询字符串?

vue-router vuejs2

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

“空的MaybeLocal”是什么意思?

我开始使用Nan来开发Node.js插件,并且正在阅读有关MaybeLocal的文章。

文档说:“如果API方法返回MaybeLocal <>,则该API方法可能会因为抛出异常或因为异常悬而未决而失败,例如,由于先前的API调用引发了尚未捕获的异常,或者因为引发TerminateExecution异常。在这种情况下,将返回一个空的MaybeLocal。

这大致等于返回空指针,但具有可以检测到该指针的简单类吗?

v8 node.js

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

如何在paperjs中拖动/调整大小和旋转矩形?

我想在 paperjs 中拖动矩形并调整其大小,我还想旋转矩形并调整其大小,同时保持其相对尺寸。

理想情况下,我想通过拖动鼠标的一个角(锚点)来这样做。什么数学或功能有助于在 paperjs 中做到这一点?

我已经通过使用缩放和修改角来尝试这个,但它不能像我想要的那样工作。有人可以指出我的解决方案吗?

提前致谢。

graphics transformation paperjs

3
推荐指数
1
解决办法
3289
查看次数

如何将 paper.js 项目合并到光栅图像中?

我正在使用 paper.js 创建一个应用程序,我可以在其中标记图像然后保存它。

我的论文项目的最低层是图像的光栅。下一层是使用各种 paper.js 项目完成矢量图形标记的地方。当一个项目被提交时,我将它复制到保存它的较低(光栅)层。但它只是图层的子项,而不是光栅化图像的一部分。如果我使用 toDataURL 将栅格捕获为图像,则子项不是图像的一部分(我不希望它们是)。

如何使用 paper.js 项目插入/覆盖部分光栅化图像?我可以先对项目进行栅格化,但随后我需要知道如何将两个栅格与另一个重叠的部分合并?如果我先转换为光栅,那么不在实际 paperjs 项目中但在封闭矩形中的像素需要是透明的,即不覆盖光栅化图像。

javascript raster paperjs

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

为什么链接器会更改共享库名称?

使用通过“node-gyp”传递的链接器命令行选项,我指定了我希望程序链接的库路径和库名称。但是生成的可执行文件没有引用我指定的文件,它在/usr/lib.

我正在使用库部分binding.gyp来引用本地lib目录。

      'libraries': [
        '-lao-oboe',
        '-L<(module_root_dir)/lib/',
        '-Wl,-rpath-link,<(module_root_dir)/lib/',
        '-Wl,-rpath,<(module_root_dir)/lib/'
      ],
Run Code Online (Sandbox Code Playgroud)

node-gyp似乎正确地传递了选项,因为/usr/bin/ld: cannot find -la-oboe如果我将-L路径更改为不包含libao-oboe.so. 如果我将请求的库的名称更改为与lib.

问题是本地库不会在运行时加载。ldd显示node-gyp输出文件没有引用指定的文件 - 它完全引用了具有不同名称的库 - /usr/lib/liboboe-1.0.so.1。查看第二行ldd输出:

linux-vdso.so.1 =>  (0x00007ffee20f5000)
liboboe-1.0.so.1 => /usr/lib/liboboe-1.0.so.1 (0x00007fa476377000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fa475ff5000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa475c2b000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa475a27000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa47580a000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa475501000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa476922000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fa4752eb000)
Run Code Online (Sandbox Code Playgroud)

本地库目录包含:

lrwxrwxrwx  1 bruce bruce      15 …
Run Code Online (Sandbox Code Playgroud)

linker ld node-gyp

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