当在angular2中改变组件属性时,你能以编程方式触发角度变化检测吗?
@Component({
selector: 'my-component',
})
class MyComponent implements OnChanges {
@Input() message: string;
ngOnChanges(changeRecord) {
for (var change in changeRecord) {
console.log('changed: ' + change);
}
}
doSomething() {
// I want ngOnChanges to be called some time after I set the
// message. Currently it is only called if the host element
// changes the value of [message] on the element.
this.message = 'some important stuff';
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试实现一个下拉菜单,你可以点击外面关闭.下拉列表是自定义日期输入的一部分,并封装在输入的shadow DOM中.
我想写一些类似的东西:
window.addEventListener('mousedown', function (evt) {
if (!componentNode.contains(evt.target)) {
closeDropdown();
}
});
Run Code Online (Sandbox Code Playgroud)
然而,该事件被重新定向,所以evt.target是永远的元素之外.事件在到达窗口之前会有多个阴影边界,因此似乎无法真正了解用户是否在组件内部单击.
注意:我没有在任何地方使用聚合物 - 我需要一个适用于通用阴影DOM的答案,而不是聚合物特定的黑客.
当尝试在webstorm中编译打字稿文件时,我受到源自文件node_modules夹中文件的编译错误的轰炸.
我的.tsconfig看起来像
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"noImplicitAny": true,
"sourceMap": true
},
"exclude": [
"node_modules"
]
}
Run Code Online (Sandbox Code Playgroud)
我已经'使用.tsconfig.json'签入了preferences > typescript.
我得到的错误来自'reflect-metadata/Reflect'包
TS2304: Cannot find name 'msCrypto'
Run Code Online (Sandbox Code Playgroud) 我正在将一个几何库放在haskell中.我不打算发布它,它只是一个项目,我用来提高我的语言知识.
我有一个Local数据类型,具有以下定义
data Local a where
MkLocal :: (Vectorise a) => ReferenceFrame -> a -> Local a
Run Code Online (Sandbox Code Playgroud)
参考框架是指向框架原点的矢量和表示框架旋转的角度,两者都定义为"绝对"参照系(嘿,它不是现实世界!).一个Vectorise几何是一个具有可逆转变成一个列表Vector.
在我看来,Local可以是Functor如下的实例:
instance Functor Local where
fmap f geom = localise (frame geom) (f $ local geom)
Run Code Online (Sandbox Code Playgroud)
但是编译器抱怨在定义中没有使用Vectorisable实例进行localize.有没有办法解决这个限制使用无数的GHC扩展之一?
编辑:根据评论中的要求,以下是一些使用的类型
local :: Local a -> a
frame :: Local a -> ReferenceFrame
localise :: (Vectorise a) => ReferenceFrame -> a -> Local a
Run Code Online (Sandbox Code Playgroud)
错误是
No instance for (Vectorise b)
arising from a use of `localise'
In …Run Code Online (Sandbox Code Playgroud) 我正在测试如下组件
@Component({
selector: 'my-component',
template: `
<my-nested-component [state]="state"></my-nested-component>
`,
encapsulation: ViewEncapsulation.Native
})
export class MyComponent {}
Run Code Online (Sandbox Code Playgroud)
单元测试我的组件时,我想获得对嵌套组件的引用MyOtherComponent.如果my-component没有使用封装,或者它使用了模拟封装,我可以使用:
let fixture = TestBed.createComponent(MyComponent);
let nestedComponent = fixture.debugElement.query(By.directive(MyNestedComponent))
Run Code Online (Sandbox Code Playgroud)
获取对组件的引用.
但在这种情况下,query只需查询组件的轻DOM子项(模仿行为querySelector),因此使用本机视图封装时nestedComponent也是如此null.
你应该如何获得DebugElement嵌套组件的(以及组件实例)的引用?
目前正在编写一个守护进程,它会自动更新多个长时间运行的程序。我不关心程序的退出状态,因为孩子退出的唯一方式是在升级时强制退出。不幸的是,我因此创建了大量僵尸进程。
我知道我可以waitpid(0, WNOHANG)用来监听任何孩子的变化(这几乎正是我想要的),但是我也使用 python 多处理模块并行运行多个单独的升级过程,所以长时间运行我可以运行的进程waitpid实际上是终止进程的祖父进程,因此它永远不会收到任何信号。
那么,有没有办法 fork 一个子进程,这样我就不需要检查退出状态,或者我只需要处理我的进程表被僵尸填满?
angular ×2
shadow-dom ×2
typescript ×2
haskell ×1
javascript ×1
linux ×1
posix ×1
python ×1
unit-testing ×1
webstorm ×1