- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在一个单一存储库中有两个应用程序,一个将是另一个的免费子集,因此免费应用程序中的所有功能都包含在非免费应用程序中。
我正在尝试设置我的效果,以便有一个实现所有常见效果的核心效果类,然后在非免费项目中扩展它以添加其他效果。这是行不通的。只要这是我定义的所有效果,两个应用程序都可以使用核心效果,但是一旦我向非免费类添加更多效果,它就会停止识别核心效果。
设置如下:
EffectsModule.forRoot([NotFreeEffects])
和 EffectsModule.forRoot([FreeEffects ])
。如果我理解正确,这意味着我的继承类设置正确,因为仍然可以看到核心效果(除非我在继承类中定义了其他效果)举个例子,LoadLayout的效果是这样的(其他类似):
@Effect()
loadLayout$: Observable<Action> = this.actions$
.ofType(CoreLayoutActions.LOAD_LAYOUT)
.switchMap(() => this.layoutService.loadLayout())
.map(
(layoutState: ICoreLayoutState) =>
new CoreLayoutActions.LoadLayoutSuccessAction(layoutState)
);
当我使用此设置运行任一应用程序时,一切正常。我在 reducer 中添加了日志语句,因此我可以看到 LoadLayoutSuccess 消息何时在 reducer 中传递和处理。
一旦我向 NotFreeEffect 类添加另一个效果(即免费应用程序未使用的效果),核心效果就不再被处理 - 我在 reducer 中的日志语句不再表明 LoadLayoutSuccess 曾经被调度过。 除了在非自由类中添加了一个完全不相关的效果之外,没有任何改变。免费的应用程序继续工作,而不是免费的。如果我从非免费中删除该附加效果,它会再次开始识别核心效果。
我错过了什么?你应该能够继承这样的效果类吗?
详情:
Angular CLI:1.7.1
节点:8.9.4
操作系统:win32 x64
Angular :5.2.7... 动画、通用、编译器、编译器-cli、核心、表单...语言服务,平台浏览器,平台浏览器动态...路由器
@angular/cdk: 5.2.5
@angular/cli: 1.7.1
@angular/ Material :5.2.5
@angular-devkit/build-optimizer: 0.3.2
@angular-devkit/core: 0.3.2
@angular-devkit/schematics: 0.3.2
@ngtools/json-schema: 1.2.0
@ngtools/webpack: 1.10.1
@schematics/Angular :0.3.2
@schematics/package-update: 0.3.2
typescript :2.6.2
webpack: 3.11.0
ngrx:5.2.0
@nrwl/nx:1.0.3
最佳答案
这是各种症状的已知问题。本质上,在效果的上下文中使用扩展是错误的。我的经验是,只要您在子类中没有任何效果,基类中的效果就会起作用。
https://github.com/ngrx/platform/issues/586
https://github.com/ngrx/platform/issues/1234
更新:自从这次提交 https://github.com/ngrx/platform/commit/e7ae8a228ee4338b6beac4baf0bba745fa32c917#diff-708a6e5fc1424e81075508aee61cb59f子类化后效果不再起作用。原因是“hasOwnProperty”-使用而不是直接访问 effects-metadata-property。
不幸的是,Ngrx 团队不想改变这种行为
https://github.com/ngrx/platform/pull/890
有关解决方法,请参阅 this answer .
这现在可以通过使用 createEffect
函数来实现(他们似乎以不同的方式实现了它)。另见 this answer
关于angular - ngRx 继承的效果类不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50532216/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!