问题标签 [angular2-services]

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 回答
996 浏览

javascript - 如何将服务注入类,然后用它扩展组件?

我有课Layer

我将使用我的组件进行扩展Lines

如您所见,我必须将Game服务注入到将继承自Layer. 但是,我想向Layer类注入服务,所以我可以用它来创建依赖于服务的方法,而且它不会强迫我每次都自己向组件注入服务。

不用说,向Layer任何组件注入服务都不起作用。

我正在使用角度 2.0.0-beta.0

0 投票
2 回答
543 浏览

typescript - 用于 ASP.NET 5 的 TypeScript 中的 Angular 2 DataService 不显示数据

这会成功显示 Hello World,因此 app.component.ts 可以正确引导。DataService 没有返回数据,或者无法显示。没有编译器错误。TypeScript 中是否有一个弹出窗口,例如 JavaScript 中的 alert(),我可以快速检查数据服务是否正在返回数据?

app.component.ts

数据服务.ts

0 投票
1 回答
239 浏览

angular - 服务事件不会正确影响模板

在谷歌中进行身份验证,使用 Angular2。

首先,在 HTML 中,我加载了 google api 库:

在 Angular2 服务中,我处理 google auth 数据并发出事件以通知组件是否 google api 已准备好:

在这里,在组件中,我选中复选框,或禁用按钮,并执行其他模板操作。

看起来一切都应该工作,但浏览器(Chrome,FF)中存在奇怪的错误 - 如果页面加载到活动浏览器的选项卡上 - 看起来没有任何反应 - 复选框没有检查,如果我在浏览器加载页面时及时打开其他选项卡,所有没关系。

如何解决?是 Angular 错误还是我做错了?

0 投票
2 回答
26218 浏览

angular - 如何订阅一次事件发射器?

SomeComponent显示在/路线中。当我在我的应用程序中导航到不同的路线并再次返回时,SomeComponent将再次订阅该事件,导致回调触发两次。如何订阅一次事件或在组件销毁时取消订阅并再次订阅?

0 投票
1 回答
295 浏览

dependency-injection - Angular 2 中的依赖注入

我认为实施 DI 是为了允许在应用程序上使用相同的服务,并根据需要更改它们。然而这个片段(Angular 2.0.0-beta.0)拒绝工作:

并且有明确的服务要求,它可以工作:

官方文档有些不一致,但在 plunkr 示例中具有相同的内容:

这是 DI 使用的预期方式吗?为什么我们必须在每个需要它的类中导入服务,如果我们不能只在启动时描述服务,好处在哪里?

0 投票
1 回答
697 浏览

typescript - 使用基于 Typescript 的 Angular2 项目中的 javascript 库

我正在尝试使用 Angular 2 和 Typescript 创建一个概念验证应用程序。我想合并toastr通知库,并希望有一种简单的方法可以让它在没有定义文件的情况下运行。

我在我的公共服务目录中创建了一个名为 toastr.d.ts] 的文件:

从服务 common.ts 调用

但是我收到编译错误:[DiffingTSCompiler]:Typescript 发现以下错误:app/services/common/common.ts (3,9): Module '"toastr"' has no exported member 'toastr'。

所有代码都可以在Cloud 9上找到

0 投票
2 回答
5470 浏览

angular - Angular2 http observables - 如何使用未定义的类型

我正在将一些代码从 Angular1 迁移到 Angular2 并遇到一些问题。我可以打开 json 响应、填充模板并从模板 ng 函数访问数据,但无法直接从组件类访问数据。从我读过的内容和看到的错误消息来看,Angular2 http / observable 似乎没有返回纯 json 对象,所以我怀疑我需要重新映射它,但不确定如何。我相信也应该可以使用 onPromise 退回到承诺,但还没有设法让它发挥作用。我花了很多时间在谷歌上搜索解决方案,并尝试实施其中的大部分,但没有运气。如果有人可以建议如何将响应重新映射为可用格式或直接访问响应中的数据,将不胜感激。

来自服务的示例 http 调用:-

订阅示例:-

示例控制台日志错误:-

示例数据结构(非常简化的测试):-

在 Angular1 中,我能够直接从函数访问数据 - 例如如下,并且希望在 Angular2 中做类似的事情

0 投票
3 回答
37848 浏览

typescript - 如何避免在 Angular 2 中使用非常长的相对路径进行导入?

我怎样才能引入类似的东西'my-app-name/services'来避免像下面的导入那样的行?

0 投票
2 回答
17183 浏览

angular - Angular 2 - 创建了多个服务实例

我创建了 AngularJS 2 服务并在 2 个不同的组件中使用它:App-Component & Sub-Component。我的服务的每个输出属性“日志”(一个字符串)。

状态服务类:

零件 :

代码的实时示例here

我除了该服务创建一次并且当每个组件调用 WriteToLog 方法时,每个组件的输出都是相同的,但事实并非如此。

输出示例:

App-Component 可以输出这个:

实例 1 - 创建于 2016 年 1 月 21 日星期四 11:43:51

来自 App-Component - 这是 2016 年 1 月 21 日星期四 11:43:54

来自 App-Component - 这是 2016 年 1 月 21 日星期四 11:43:55

子组件可以输出这个:

实例 2 - 创建于 2016 年 1 月 21 日星期四 11:43:51

来自子组件 - 这是 2016 年 1 月 21 日星期四 11:43:57

来自子组件 - 这是 2016 年 1 月 21 日星期四 11:43:58

因此,似乎创建了 2 个服务实例(实例 1 + 实例 2)

我只想要一个实例;)当我在日志中附加字符串时,它必须出现在两个组件中。

谢谢您的帮助

0 投票
2 回答
1353 浏览

angularjs - Angular 2 中的部分可观察处理

我有一个登录表单组件:loginForm它调用我的api:

有一个服务调用 api: loginService

我想要的是在 loginService 中处理的错误。但结果返回onLogin方法。

我在 onLogin 中尝试了各种映射处理程序(如图所示),但无法使其工作。关于我可能做错的任何想法?