问题标签 [angular-observable]

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 投票
2 回答
341 浏览

angular - 在Angular 4中单击取消时删除加载器

我有一个名为 ngx-loading 的 npm 包。我必须设置 this.loading = true 和 this.loading = false 让它显示而不显示。当我在 javascript 中使用警报时,问题就来了。警报显示“ok”和“cancel”。当我点击“确定”时,加载器消失了,而如果我点击“取消”和“x”,它仍然出现?当我单击取消或 x 按钮时,如何使加载程序消失?这是我在下面所做的。

TS

0 投票
1 回答
9166 浏览

json - 什么是 Angular 4 中的 null 处置

加载页面时,我得到“什么是 null 的处置”。我要获取数据列表,但无法在视图中显示这些记录。在这里我添加了代码片段以了解我的要求

Angular JS 服务文件

从 MongoDB 获取数据的 Node JS 代码

结束节点JS代码

Angular JS home.component.ts 我在其中调用 web 服务以在角度视图中呈现数据

模板代码

来自 API { "data": [ { "title":"test title", "description":"test description" } ], "totalRecords":2 } 的结束模板JSON 数据

我附上了错误的截图。

控制台中显示的错误

0 投票
1 回答
2008 浏览

javascript - 如何在执行下一行代码之前完成等待订阅块?

我正在订阅 Google Maps API 以根据地址获取坐标。我的理解是,通过等待订阅行,它应该等待该代码块完成,然后再进入以下行。

但是,当我运行该应用程序时,我在控制台中看到了这一点:

这向我表明,等待块内的代码是最后执行的。没有异步/等待,我有相同的结果。如何让订阅代码首先执行并让其他代码等到我的 lat 和 lng 有值?现在他们只有在订阅块内有值,但我不能像这个答案建议的那样在里面放一个返回线。

我读过 Angular 中的 await/async 与 promise 和 callback 本质上是一样的。我已经通过使用 .then() 将此异步 getCoordinates 函数的结果视为一个承诺:

0 投票
2 回答
2509 浏览

angular - 创建http请求服务的最佳方法?

我创建了一项服务来处理所有 http 请求。它运行良好。但我想知道我的方法有什么问题,还想知道其他好的方法,比如 observable?

请求服务.js

我正在使用以下代码调用此“发布”方法。在这里,我想在请求完成后设置一个承诺,我想显示一些消息。

0 投票
0 回答
968 浏览

angular - Angular 5:如何处理异步和订阅的订阅

我有一种情况,我得到一些项目的列表并async在模板中使用。但是,无论出于何种原因,我都需要获取组件中的第一项 - 我需要对第一个元素进行大量工作,因此我不能只获取模板中的第一项。所以,我也订阅了同样的 observable。这是“允许”的吗?我是否以这种方式做任何内存泄漏?这是我的意思的一个基本示例(一个实时示例http://plnkr.co/edit/tulvIgxBjpOoUZ4Gk3hI?p=preview):

更新:现场示例http://plnkr.co/edit/tulvIgxBjpOoUZ4Gk3hI?p=preview

0 投票
1 回答
1623 浏览

angular - Angular form control last observable change

I am building an autocomplete function that is querying a backend for suggestions and would like to only get the last query that was made given a certain delay while the user is typing in an angular 5 form control. Currently my code looks like

This works however it makes a query for each typed in letter after 3000 ms. For example 'test' would query ['t', 'te', 'tes', 'test'] after 3000 ms. How can I just take the last change (i.e. 'test') from valueChanges after the 3000 ms delay and then do the subscribe? Thank you for you help

0 投票
1 回答
2083 浏览

javascript - 使用 Observable 自动更新视图

我使用 observable 和 HTTP 请求在服务器上添加数据,然后更新其他路由。

我希望这些数据立即更新。实际上我应该刷新页面以获取新数据

在我的服务中,我使用AddProj()getAllProj()函数来获取和发送数据

服务.ts

ajoutproj.ts我把数据addProjet()

在我的listprojects.ts文件中,我使用getAllProj()

更新我添加我的模板:

更新 2:我做了一个 stackblitz回购,我无法重现服务器端,只是前端

我没有错误,但我的问题是数据不会自动更新。我应该每次都刷新我的页面以获得新的更改,因为我知道我正在使用 Obersables。我忘记了什么?

0 投票
0 回答
49 浏览

angular - 如果 service.variable 发生更改,则视图未更新

在我学习了 AngularJS 之后,我正在学习 Angular2。

实际上我遇到了解决视图更新的问题。认为这可以通过 Oberving 完成,但是任何尝试实现可观察变量的尝试都失败了。

我的问题:我的 Training APP 有三行(标题、扩展名、状态),每一行都有一个组件。在标题中,我得到了一个选择,该选择由服务提供。

服务获得静态值、选择的集合和选定的值。到目前为止,一切都很好。但我想在内容组件上显示选定的值,而不是在组件之间绑定它。

这是我的代码:
HTML:

用户服务:

用户组件

扩展组件

在扩展组件中,我可以使用任何事件(单击、按键等)显示选定的用户,但我希望在每次 userService 更改它时更新它。

我尝试了许多来自互联网的示例,但没有一个有效。

谁能帮助我理解解决方案?最佳做法是什么?理解它的最简单的代码示例是什么?

问候 n00n

0 投票
1 回答
559 浏览

angular - Angular 2+:使用 Subjects 的数据绑定在 ngOnInit 中不起作用

当页面也在变化时,我需要在两个组件之间传递数据。为此,我实现了一个数据服务:

并使用 addData 方法将数据传递给它:

我在我的其他组件中订阅了它的数据:

但是,我的 html 元素没有更新为新内容(尽管我得到了数据):

0 投票
3 回答
231 浏览

javascript - 为什么将 console.log 作为 Observble subscribe() 函数的参数传递?

我是 Angular 和函数式编程的新手,我对这种语法有疑问(我认为应该与函数式编程行为有关):

所以courses$应该是一个Observable数组( <{}[]>语法到底是什么意思?)

最后一行似乎将订阅的内容打印到 JavaScript 控制台中。但是这种语法到底是什么意思?我知道console.log()是一个函数,它以必须打印的值作为参数。为什么在这种情况下它作为 subscribe 函数的参数而不以 () 结尾?