我正在使用Angular2 + TypeScript,当我尝试执行此代码时:
var event = new Event('check');
window.dispatchEvent(event);
Run Code Online (Sandbox Code Playgroud)
此代码导致下一个错误:
无法在'EventTarget'上执行'dispatchEvent':参数1不是'Event'类型。
我已经尝试了所有方法,发现可以使用:
var event = new CustomEvent('check');
Run Code Online (Sandbox Code Playgroud)
问题是任何IE不支持CustomEvent。
另一件有效的方法是:
var event = new Event('CustomEvent');
event.initCustomEvent('check');
Run Code Online (Sandbox Code Playgroud)
问题是不赞成使用InitCustomEvent。
我有什么办法可以避免这种类型的错误?也许在打字稿中的某个地方例外?还是使用不被弃用且适用于IE Edge的任何代码?
我有以下 HTML:
<ul infraTooltip toolTipOptions="{check: 1}">
Run Code Online (Sandbox Code Playgroud)
我创建了一个指令,该指令在其主机上加载动态组件:
@Directive({
selector: '[infraTooltip]'
})
export class InfraTooltipDirective {
@Input() toolTipOptions: any = {};
constructor(private componentFactoryResolver: ComponentFactoryResolver,
private viewContainerRef : ViewContainerRef ) {
}
@HostListener('mouseenter', ['$event', '$target'])
showTooltip ($event) {
this.loadContainerComponent();
}
@HostListener('mouseleave', ['$event', '$target'])
hideTooltip ($event) {
this.clearContainerComponent();
}
loadContainerComponent () {
let componentFactory = this.componentFactoryResolver.resolveComponentFactory(TooltipContainerComponent);
let componentInstance = this.viewContainerRef.createComponent(componentFactory);
componentInstance.instance.toolTipOptions = this.toolTipOptions;
}
Run Code Online (Sandbox Code Playgroud)
我想根据指令的主机设置我的动态组件的样式- 在我的例子中是ul,以实现类似让我的动态组件离开:距 ul 10px 的效果。
我想在我的移动应用程序中使用 touchid 实现身份验证机制。我的计划是,用户成功登录后,我将把他的凭据保存到钥匙串中,下次他访问我的应用程序时,我将从钥匙串中获取凭据,并让他在成功的 touchid 匹配后登录。
我想知道将他的密码保存在钥匙串中是否安全。如果设备越狱会发生什么?除了将密码保存在钥匙串中之外,还有其他选择吗?
谢谢你!
我一直在尝试从lat和lng中获取google LatLng对象,尽管看起来像我一直在使用Google Api编写的LatLng,但我一直未得到定义。
google.maps.LatLng(-34, 151) // undefined
Run Code Online (Sandbox Code Playgroud)
这也是我的 小提琴。