- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 StackOverflow 上遇到与许多人相同的问题后,我无法理解什么是“外部 Angular 区域”服务?
我已经检查了围绕这个主题的所有现有问题,这正是我需要问这个问题的原因:
this.myService.method().subscribe(e => {
this.value = e;
});
最佳答案
你想要的代码是NgZone.isInAngularZone()
.这会告诉你它是否在那里执行。
资料来源:在写这篇文章之前,我花了好几个小时阅读 Angular 文档。
此外,您可以注入(inject) NgZone
进入您的服务并尝试使用this.ngZone.run(() => yourSubscriberCallback())
这应该会有所帮助,尽管我尝试这个的结果很复杂。
编辑:好的,我设法让我的东西正常工作,让我们看看它是否对你有帮助。
在我的例子中,我使用了一个第三方库,其中包括一个监听器来进行更改。我使用的是 RXJS BehaviorSubject
通过服务将这些更改传播到各个组件,但这些更改没有被拾取。
原来这是因为我在监听器中使用的方法是在 AngularZone 之外执行的。
起初我是这样做的:
export class Service {
public BehaviorSubject<Thing> thingSubject = new BehaviorSubject<Thing>(new Thing());
constructor(private ngZone:NgZone) {
thirdPartyLibrary.listen(ngZone.run(() => myCallback.bind(_this)));
}
...
}
myCallback
正在做:
myCallback(thing) {
this.thingSubject.next(thing);
}
export class Service {
public BehaviorSubject<Thing> thingSubject = new BehaviorSubject<Thing>(new Thing());
constructor(private ngZone:NgZone) {
thirdPartyLibrary.listen(myCallback.bind(_this));
}
myCallback(thing) {
this.ngZone.run(() => this.thingSubject.next(thing));
}
}
关于 Angular 2 : what make a service to be "Outside" angular zone?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44391696/
在类中实现 NSCopying 的此方法以启用复制时,区域参数使用什么?如果我设置一个新对象,我不需要用 allocWithZone 来分配它,因为 alloc 就足够了......我很困惑.....
本文整理了Java中io.sphere.sdk.zones.Zone.getLocations()方法的一些代码示例,展示了Zone.getLocations()的具体用法。这些代码示例主要来源于Gi
本文整理了Java中io.sphere.sdk.zones.Zone.getId()方法的一些代码示例,展示了Zone.getId()的具体用法。这些代码示例主要来源于Github/Stackover
本文整理了Java中io.sphere.sdk.zones.Zone.referenceTypeId()方法的一些代码示例,展示了Zone.referenceTypeId()的具体用法。这些代码示例主
本文整理了Java中io.kaif.model.zone.Zone.valueOf()方法的一些代码示例,展示了Zone.valueOf()的具体用法。这些代码示例主要来源于Github/Stacko
本文整理了Java中io.kaif.model.zone.Zone.tryFallback()方法的一些代码示例,展示了Zone.tryFallback()的具体用法。这些代码示例主要来源于Githu
我的数据库中恰好有包含 timestamp without time zone 列的表。现在我需要根据时区比较它们。 我可以这样做: select my_timestamp::timestamp wi
我正在尝试 Angular 2。但是在将 zone.js 作为全局变量导入后出现此错误: 我的包及其版本: "dependencies": { "angular2": "2.0.0-beta.
可能我问这个问题已经太晚了,但无论如何。 有人可以解释一下在什么情况下我需要导入区域的补丁 - zone.js/dist/zone-patch-rxjs。据我所知,补丁已添加到此 PR 中(this
问题很简短:如果我已经在没有时区的时间戳类型的列中有数据,如果我将类型设置为带时区的时间戳,postgresql 将如何处理这些数据? 最佳答案 它将当前值保留在本地时间并将时区设置为本地时间的偏移量
我有一个在东部时区的时间,但我想将它调整为中部时区。两个时区都在美国。我从来没有这样做过?我不知道如何转换它。请帮帮我好吗? 最佳答案 这是一种可能的方法: $dt = new DateTime('2
我在 Angular 11 上有一个应用程序刚刚开始在所有浏览器、所有环境(本地/暂存/生产)上同时出现错误(大约一个小时前,没有任何更新或任何东西): Uncaught TypeError: t.g
我们有一个函数,可以像 JS 一样解析 UTC 中的日期/时间对,但随后强制它的行为就像在本地时区中指定的一样。如下: var tz = (new Date()).toString().match(/
我很难理解 "AT TIME ZONE 'localtime'" 究竟是如何工作的?通过使用它,我发现它的行为与 "AT TIME ZONE 'UTC'" 完全一样......但是为什么呢? "loc
我在 PostgreSQL 9.3 ALTER TABLE manual page 中找到了这个 ALTER COLUMN 语句: ALTER TABLE audits ALTER COLUM
首先,我意识到不推荐使用 time with time zone。我要使用它是因为我将多个 time with time zone 值与我当前的系统时间进行比较,而不管是哪一天。 IE。用户说每天 0
在 Rails 控制台中: > ActiveSupport::TimeZone['Samoa'].utc_offset => -39600 > ActiveSupport::TimeZone['Sam
我在两个不同的数据库中运行了相同的语句:我的本地数据库和 Oracle Live SQL . CREATE TABLE test( timestamp TIMESTAMP DEFAULT SY
我在两个不同的数据库中运行了相同的语句:我的本地数据库和 Oracle Live SQL . CREATE TABLE test( timestamp TIMESTAMP DEFAULT SY
在 Rails 3.0.10 中,我使用 Time.zone 来更改用户查看美国各地发布的类(class)时间的方式。然而,更改时区似乎并不像我期望的那样 Time.zone = TZInfo::Ti
我是一名优秀的程序员,十分优秀!