问题标签 [angular2-observables]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
8310 浏览

json - Angular 2+ and Observables: Can't bind to 'ngModel' since it isn't a known property of 'select'

EDIT: Updated Plunkr: http://plnkr.co/edit/fQ7P9KPjMxb5NAhccYIq?p=preview

this part works:

but I've problems with the select box, the error message is:

Can't bind to 'ngModel' since it isn't a known property of 'select'

The whole Component:

and data.json

0 投票
1 回答
57 浏览

angular - 如何检测路由订阅的完成?

我正在使用 angular2:

我查看了RxJS 文档,它说可以添加完成回调:

但是这个完成永远不会被解雇。Angular2的使用Observables与规范不同吗?

0 投票
1 回答
423 浏览

angular - angular2 是否可以与其他组件共享可观察数据?

我有一项通过 RESTful api 获取用户的服务。它使用Observable实现。

我还有一个包含 8 个子组件的父组件。

我想知道是否以及如何在父组件中发出单个 HTTP 请求,以获取用户并在其子组件中共享它。

这是在父级中定义用户的调用:

我已经将用户模型导入并注入到每个组件的 constructor() 中,如下所示:

一旦在父组件中定义了用户,我就有一个console.log(user)在子组件中触发 a 的按钮,它返回为undefined.

0 投票
2 回答
227 浏览

angular - Angular2访问可观察委托中的组件成员?

我正在订阅一个 rxjs ObservableSubject,并在事件触发时尝试重新加载 iframe。我的可观察委托正在触发,但我似乎无法弄清楚如何访问我的组件的属性,它们都是未定义的。这是一些片段:

我不断将其写入控制台:'dt url undefined'。dtUrl 绑定到 iframe 的 src,所以我希望更新这个可观察委托中的值。

谢谢!

编辑 1


这是组件的完整源代码:

0 投票
1 回答
4531 浏览

angular - Angular2(Typescript) http 包装器的 RxJS 可观察对象和泛型类型

今天我在尝试实现一个抽象的http服务时遇到了以下问题。该服务应该作为扩​​展所有其他 http 服务的基础。

到目前为止,实现如下,跳过其他方法进行说明:

现在,如果我想使用抽象的 HttpWrapper,我会执行以下操作:

但是这样做我得到以下编译错误:

我无法解决这个问题,因为方法 extractAll 清楚地返回 Item[] 并在映射从服务器返回的结果时使用。

我决定实现这个抽象的 HttpWrapper “保持干燥”。我不确定这是否是最好的方法。

0 投票
1 回答
1130 浏览

angular - 如何在angular2中获取数据并订阅它

我正在尝试获得结果并使用可观察的结果进行评估,但我无法获得它,请有人帮助我。

我正在尝试获得结果并使用可观察的结果进行评估,但我无法获得它,请有人帮助我。

0 投票
3 回答
238 浏览

angular - Angular2 可观察对象与承诺

我目前正在开发一个 Web 应用程序,它必须从 SQL 数据库(如一些员工或工作计划)加载一组数据。每次当你被路由到一个组件时,如果你更新数据,它将被发送到服务器并返回某种成功或错误消息。

目前我使用 observables,但它们的行为不像我想要的那样。我订阅了一个 observable,接收我的数据并取消订阅(我也不确定在哪里取消订阅。在 onDestroy 中还是在Complete我的 sub 的一部分中?)。但不知何故,它仍然是异步的,因为代码执行在接收所有导致我的应用程序失败的数据之前继续执行。

这是我的实现示例:

员工组件:

员工服务:

我知道这可能在这里经常被问到。但是我真的不确定差异,即使我阅读越来越多的帖子我也不会明白。有人可以花点时间帮助我吗?

0 投票
2 回答
2901 浏览

javascript - 如何将可观察的数组形式映射到另一个数组

我目前正在使用this.route.url.subscribe(params=>...我的路由参数做一些事情。我想检查订阅的参数数组中是否有一些参数。但是这个数组包含URLSegments我只想从中检查path属性。有什么办法可以用map操作员重新映射吗?
我尝试重新映射整个数组,this.route.url.map(x=>x.path)但这不起作用,因为数组本身没有path. 我错过了什么吗?

0 投票
1 回答
389 浏览

caching - Angular2:带有可观察对象的多个 http 调用(预先输入)的示例

所以我正在我的应用程序中处理几个需要发生以下情况的案例

当事件触发时,执行以下操作

  • 项目清单
  • 检查具有该上下文的数据是否已经缓存,服务缓存
  • 如果没有缓存,去抖动 500ms
  • 检查其他 http 调用是否正在运行(对于相同的上下文)并杀死它们
  • 拨打 http 电话
  • 成功缓存和更新/替换模型数据

当涉及到预输入功能时,几乎是标准的

我想使用 observables...顺便说一下,如果以前的调用正在运行,我可以取消它们

有什么好的教程吗?我环顾四周,找不到任何最新的东西

好的,给你一些线索我现在做了什么:

此处缺少去抖动

-- 我最终实现了 lodash 的 debounce

0 投票
2 回答
729 浏览

angular - 订阅方法不对更改做出反应 [Angular 2]

我的 app.component 中有一个方法可以更改我的 LangService 中的语言。当发生更改时,LangService 应该使用 Observable 对象响应我的所有其他组件,因为我已经订阅了所有组件中的更改。不幸的是,这并没有发生。它只响应调用更改语言函数的app.component。我不确定我在哪里犯了错误。也许我只是误解了整个概念,因为我是 Angular 的新手。

这是代码:

app.component.html

app.component.ts

一些其他的.component.ts

语言服务

谢谢您的帮助。