问题标签 [angular4]
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.
angular - Angular 2 和 Primeng:自从我更新到 Primeng 2.0 后,ui-state 不起作用
由于 ip assed 到 primeng 2.0 版本,一些 primeng 组件样式不起作用,ui-state 类(ui-state-hover、ui-state-disabled 等)也不起作用。它适用于primeng 1.0。我实际上在 Angular 4 和 primeng 4 RC1 中,但问题仍然存在。谢谢你。
angular - 在 Angular 的同一视图中显示使用路由器的多个功能模块
我有一个用例,我需要同时在视图中加载多个模块。问题是,这些模块中的每一个都可能像一个组件一样简单,或者是一个带有路由器和所有东西的复杂 Angular 模块。我想你可以称它为可插入框架。
我必须显示的模块数量或它们是谁是动态的(我从服务器获取它们)。
我的第一个想法是,如果功能模块的路由器不是与主要模块的单例,并且如果他们不会完全更新 url,这将是很好的情况。
如果引导,每个功能模块都应该能够作为独立应用程序启动(因此,我确实需要它能够整合包括路由器在内的所有 Angular 4 功能)。
我设法通过使用路由器和命名路由器插座(二级路由)来获得一些工作,但不确定从长远来看有多好。
我应该如何处理这个?
angular - Angular2 - 如何将 HTTP 标头添加到我的应用程序发送到浏览器的响应中?
我正在为工作中的 Angular2 应用程序制作原型。该应用程序应该在一些公司中间件下运行,该中间件期望在从 angular2 应用程序获得的响应中获得多个Link标头。不幸的是,我无法弄清楚如何将标头添加到 Angular 开箱即用的响应中。
为了澄清我的意思——当我直接向我的 Angular 应用程序发送 GET 请求时,它会发回浏览器可以呈现到 SPA 中的文本/HTML 响应。我想在这个响应中添加标题,但不知道怎么做。我发现最接近的是这里的讨论:Angular2 - set headers for each request
这听起来像是重复的,但是在查看了类似的问题后,我发现了如何将标头添加到我使用 HttpModule 中的 HTTP 对象显式生成的响应中,而不是如何将标头附加到 Angular 创建的响应中-盒子。我很想使用像 HTTP 拦截器这样的东西,它只是将标头附加到我的应用程序发出的每个响应中,但看起来 Angular2 在 4.1 版之前不会有拦截器。
编辑:我尝试过的事情:
- 在我的(主)AppModule 中为 Http ResponseOptions 添加提供程序,将标头添加到响应中
- 这会将标头添加到我从我的应用程序从 HttpModule 接收的 http 请求中收到的所有响应中,但不会将标头添加到我的应用程序本身发送到外部服务的响应中。
编辑 2:我误解了我的 Angular 应用程序的结束位置以及托管它的服务器的开始位置。可以在服务器中添加这样的标头 - 对于我的简单示例,我需要配置 webpack-dev-server。请参阅下面接受的答案。
angular - 无法让 Angular4 使用延迟加载和动画(使用 BrowserAnimationsModule)
无法让 Angular4 使用延迟加载和动画。所以我加载BrowserAnimationsModule
了我的 app-modules.ts 并且动画在主模块中工作正常,但在延迟加载的模块中没有,所以我尝试
BrowserAnimationsModule
在我的共享模块中加载,因为我收到以下错误:
Unhandled Promise rejection: BrowserModule has already been loaded.
If you need access to common directives
这是我的共享模块:
一旦我添加它,BrowserAnimationsModule
它就会出错,
想法?
谢谢,
肖恩
angular - 具有 webpack 开发模式的 Angular4 应用程序在使用 EventEmitters 时性能下降
当我在开发模式下使用 @Output 事件发射器时,我的 Angular 4 应用程序性能下降。我尝试尽可能简化我的设置,以便可以理解问题。
一个父组件由多个子组件组成。每个孩子都可以通过@Output 事件发射器发射一个事件。
父组件.ts
父模板.html
child.component.ts
如果我导航到父组件,对于上面的示例,Chrome 处于渲染阶段(Chrome 开发人员工具中的时间线选项卡)大约 1500 毫秒。如果我删除(onSomething)="onSomething($event)"
,Chrome 将处于渲染阶段约 600 毫秒。如果我在父模板中使用父类中的相应方法添加多个 onSomethings,那么每次添加绑定都会变得更糟,例如 5 个绑定会导致大约 4000 毫秒的渲染时间。
我的设置主要由这些组件组成(我很乐意提供更多详细信息,但由于我不确定要包括哪些内容,所以我尽量减少):
- 角 4 (4.0.0)
- 网络包 2.3.2
- 网络包开发服务器:2.4.2
我的问题是:
- 如何避免这么长的渲染时间?
- 为什么它只发生在开发模式下?
工作现场示例:
在https://github.com/mircowidmer/angular2-webpack-starter/commit/ea6511356b13b833f14d455186ec362d7a90c638上提交了一个工作示例,并且可以轻松复制。
unit-testing - 单元测试没有 ChangeDetectorRef 的提供者
版本:Angular 4。
我将父组件注入子组件以通过子组件访问父方法。
在父组件中,我不得不使用 ChangeDetectorRef,因为它有一个可以更新运行时的属性。
现在代码工作正常,但子组件规范为注入父组件的“ChangeDetectorRef”抛出错误。
错误:没有 ChangeDetectorRef 的提供者!
父组件
子组件
应用程序.html
子组件的单元测试
当我尝试在子规范的提供程序中添加 ChangeDetectorRef 时,出现以下错误。
失败:遇到未定义的提供者!通常这意味着你有一个循环依赖(可能是由使用'桶' index.ts 文件引起的。)
在谷歌搜索并尝试了很多事情之后,我无法找到解决方案。任何帮助表示赞赏。
angular - Angular4 - ZoneAwareError
当我尝试运行看起来像这样的 Angular4 时,我突然看到一个错误......
我无法弄清楚我的代码的哪一部分正在创建它,因为应用程序的其他部分继续正常工作。当我尝试将代码回滚到错误前的版本时,我仍然收到错误消息。错误是如此模糊,我不知道是哪个文件或文件的一部分导致了错误。
有人对如何开始寻找这个有任何想法吗?
更新:错误似乎是当我将服务导入组件时。这是导入和使用服务的仪表板组件的代码。如果我从仪表板组件构造函数中删除它......
错误消失。这是仪表板组件...
...这是服务...
扩展错误...
angular - 忽略 Angular 2 Jasmine 中已弃用的警告
我目前正在使用 Angular 2(或 Angular 4)在 jasmine/karma 中运行一些测试。问题是我还在使用尚不完全支持 angular 4 的材料设计,这使得无法测试组件,因为它总是会抛出以下错误:
我不能停止使用“模板”,因为在我看来,我没有使用它,它被 Material Design 在较低级别上使用。
所以我的问题是:
有没有办法忽略或抑制警告?(在构建应用程序时看到代码运行良好)
编辑:Md2 似乎已经解决了这个问题:https ://github.com/Promact/md2/issues/125 (我不能保证这一点)
typescript - 类型 'void' 不可分配给类型 'ObservableInput<{}>'
在我迁移到 TS 2.2.2 后,这个错误开始出现,所以我假设这就是问题所在......代码没有停止工作,但现在我收到了这个错误,我尝试了一些事情,比如返回一个空的 observable ,捕获重新抛出的异常并返回一个对象,似乎没有任何效果。为什么现在会发生这种情况?难道它不应该理解我正在重新抛出异常并且不期望返回吗?我误读了错误吗?
这是完整的错误描述:
这是完整的代码:
我尝试返回 Observable,但我的包装方法期望返回 type T
,这是我的反序列化请求 ( map(...)
) 的返回。如果我确实返回,throw
这是我得到的错误:
[ts] 类型 'Observable' 不可分配给类型 'T'
我正在使用:
- 角4
- 打字稿 2.2.2