我一直在尝试使用Angular 2来使用可拖动的div工作.我使用angular2-examples repo中的这个示例作为起点,只是真正调整代码来解释toRx()方法的删除.代码有效,但它不考虑mouseout事件.这意味着如果我单击一个Draggable div,然后慢慢移动鼠标,div将随鼠标移动.但是如果我移动鼠标的速度太快,mouseout则会发送一个mousemove事件而不是一个事件,拖动停止.
在鼠标移动到目前为止mouseout触发事件后,如何保持拖动?我已经尝试将mouseout事件流与mousemove一个事件流合并,以便将mouseout事件视为一个事件mousemove,但这不起作用.
我正在使用Angular 2.0.0-beta.12.
import {Component, Directive, HostListener, EventEmitter, ElementRef, OnInit} from 'angular2/core';
import {map, merge} from 'rxjs/Rx';
@Directive({
selector: '[draggable]'
})
export class Draggable implements OnInit {
mouseup = new EventEmitter();
mousedown = new EventEmitter();
mousemove = new EventEmitter();
mouseout = new EventEmitter();
@HostListener('mouseup', ['$event'])
onMouseup(event) {
this.mouseup.emit(event);
}
@HostListener('mousedown', ['$event'])
onMousedown(event) …Run Code Online (Sandbox Code Playgroud) 我正在尝试将CVS存储库导入git.不幸的是,我们一直在使用一种从CVS仓库创建版本的非常古老的方法,它不涉及任何实际的CVS分支或标记,而是将这些信息保存在单独的系统中.因此,几乎所有的开发都发生在CVS主干上.因此,可以在历史的早期添加一个文件,但不会在6个月内成为发布的一部分.
我想做的是将这个CVS repo导入git,并使用rebasing将这些提交移动到开发分支.我确实有一些来自CVS的分支,所以我真的想移动所有分支.
说我有这个:
F---G---H topic
/
A---B---C---D---E---I---J master
Run Code Online (Sandbox Code Playgroud)
B是我想要移动到自己的分支的提交.我希望结果看起来像这样:
F`---G`---H` topic
/
A---C`---D`---E`---I`---J` master
\
B some_unfinished_feature
Run Code Online (Sandbox Code Playgroud)
但是变基只会master导致:
git checkout -b some_unfinished_feature B
git rebase --onto A B master
A---C`---D`---E`---I`---J` master
\
\ F---G---H topic
\ /
B---C---D---E
\-some_unfinished_feature
Run Code Online (Sandbox Code Playgroud)
我能得到git的变基topic到E'一个衍合命令?我可能有很多分支,我想转移到相应的新提交.或者有没有办法让我可以得到E和之间的映射E'?
我有以下代码:
a = str('5')
b = int(5)
a == b
# False
Run Code Online (Sandbox Code Playgroud)
但是,如果我创建一个子类int,并重新实现__cmp__:
class A(int):
def __cmp__(self, other):
return super(A, self).__cmp__(other)
a = str('5')
b = A(5)
a == b
# TypeError: A.__cmp__(x,y) requires y to be a 'A', not a 'str'
Run Code Online (Sandbox Code Playgroud)
为什么这两个不同?python运行时是否捕获由此引发的TypeError int.__cmp__(),并将其解释为False值?有人能指出我在2.x cpython源代码中显示这是如何工作的吗?
我有一些代码,我想知道路径是否有shell通配符,这似乎是在中心位置定义的东西.我发现glob.has_magic()提供了这个(它只是一个正则表达式:) '[*?[]'.但是这个方法没有列在模块的__all__列表中,也没有出现在pydoc中.
我应该把这个正则表达式复制到我的代码中吗?(我不愿意)
在将来的python版本中是否存在删除此方法的风险,因为它没有出现在文档中?
如果我有一个非常长的包名,我可以通过在符号表中创建一个条目来对该包进行别名:
BEGIN {
# Make "Alias" be an alias for "Some::Really::Long::Package";
*Alias:: = \*Some::Really::Long::Package::;
# Equivalent to:
# *main::Alias:: = \*Some::Really::Long::Package::;
}
Run Code Online (Sandbox Code Playgroud)
这就是Package::Alias你内心所做的事情.然而,这很糟糕,因为它与main包装混乱.如何使别名仅影响当前包,并且只能使用包中的别名?我尝试将别名定义更改为
*Short::Alias:: = \*Some::Really::Long::Package::;
Run Code Online (Sandbox Code Playgroud)
但后来我不得不使用Short::Alias->myMethod()而不是Alias->myMethod().
use strict;
use warnings;
package Some::Really::Long::Package;
sub myMethod {
print "myMethod\n";
}
package Short;
BEGIN {
# Make "Alias" be an alias for "Some::Really::Long::Package";
*Short::Alias:: = \*Some::Really::Long::Package::;
}
# I want this to work
Alias->myMethod();
package main;
# I want this to not work
Alias->myMethod(); …Run Code Online (Sandbox Code Playgroud)