问题标签 [ngrx]
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.
typescript - @ngrx/store-devtools:instrumentStore() 返回一个对象数组而不是提供者
我正在使用这个种子开发一个 Angular 2 项目:angular2-webpack-starter,我也在使用 @ngrx/store 和@ngrx/store-devtools。
在引导期间,应用程序抛出错误:
zone.js:260 - Uncaught Invalid provider - only instances of Provider and Type are allowed, got: [object Object]
以下是我使用种子设置 @ngrx 的方法:
将包添加到vendor.browser.ts
添加 angular 2 ( browser-providers.ts
)的提供程序
将监视器添加到我的应用模板
<ngrx-store-log-monitor toggleCommand="ctrl-h" positionCommand="ctrl-m"></ngrx-store-log-monitor>
.
简单的。
但是当我console.log
返回instrumentStore()
时,我得到一个对象数组。但是 Angular 需要和提供者的数组。
这是我的软件包的版本:
- 角2:rc3
- @ngrx/核心:1.0.1
- @ngrx/商店:1.5.0
- @ngrx/store-devtools:2.0.0-beta1
- @ngrx/store-log-monitor:2.0.0-beta1
如果有问题,我会在 Github 上报告。但我不确定是否正确设置了所有内容。
谢谢。
angular - Angular2中路由中的常量参数
我需要在路线中保存当前选择的语言。
例子:
有没有一种简单的方法可以在路由上设置一些前缀,或者我应该在每条路由中设置 lang?
主要思想是写在模板中,例如
但导致路由器有类似的东西
PS我使用ngrx/路由器
typescript - Angular2 rc.4 升级中断测试-platformStrategy.getBaseHref 不是函数
我将我的 Angular2 应用程序升级到 Release Candidate 4,从那时起我不得不重新设计我的一些测试,因为新的候选版本引入或贬值了一些项目。然而,我的大量测试现在失败了,我不知道为什么,但我被以下错误困扰,我不确定为什么,这必须发生在我的 50% 的测试中
所以,我认为有问题或“@ngrx/router”有问题:“^1.0.0-beta.1”但我可能是错的。所以我的测试看起来像这样......(我试图减少这个只是为了让我知道我在做什么)。
升级前一切正常。有没有人遇到过类似的问题platformStrategy.getBaseHref is not a function
?我再次使用 Angular2 rc4,“karma-jasmine”:“^1.0.2”和“@ngrx/router”:“^1.0.0-beta.1”。提前致谢。
**** 更新 ****
我不能确定,但我认为问题addProviders([])
出在 IDE 中,因为我的 IDE 中有错误 - “无法解析 addProviders 的符号”,但它在我的节点模块中,并且我正在正确导入它!
typescript - 将值从父组件传递给angular2中的ngForm的子组件?
我想将输入值从父组件()传递给子组件()。(我尝试使用@input,但它不起作用。我想我犯了一些错误?)
父组件:
子组件:
angular - @ngrx/store:从一个动作中调度。好用吗?怎么做?
我正在使用 Angular 2 和@ngrx/store.question 开发一个关于良好实践以及如何做到这一点的项目。
我开发了一个“网络查找器”来管理文件。所以我可以做一些基本的动作,比如复制、移动等。
我不会解释原因,因为这只是一个示例,但移动文件包含 3 个步骤:
- 逻辑:做一些验证。
- 发送一个动作 A
- 发送一个动作 B
这 3 个步骤是在我的角度组件内完成的。我已经考虑过了,我认为简单地调度一个执行一些验证的动作并调度其他 2 个动作是一个更好的主意。
我为什么要这样做?首先,它更容易阅读
而不是
其次,我可以copy
即时调度我的动作创建者而不会遇到任何副作用,因为验证将在动作内部执行。
实际上,我可以在不进行验证的情况下发送我的action1
et 。action2
最后,我所有的逻辑都在我的行动中。我可以让我的组件保持简单并专注于他们的工作(管理 UI 等)。这是伟大的。
问题1:好的做法?
这样做是个好主意吗?我想是的,但你的经历让我很感兴趣。
问题2:如何?
怎么做 ?我的动作创建者只是函数。我不能用 来装饰它们Injectable
并使用constructor
来注入实例。
以下是动作创建者的示例:
我怎样才能从那些动作创建者那里分派?
我已经使用 redux 作为 Redux 与 React 的实现,并且我创建了一个小包,允许我从动作创建者调度:redux-thunk
typescript - 如何使用ngrx/router在位置更改上应用Angular2(rc.4)动画
免责声明- 请注意,我知道我在这里含糊不清而且水平很高,但我目前不知道我需要做什么......
我正在使用或者我应该说我正在尝试学习 Angular2,我真的很想使用发布候选版 3/4 中提供的新动画 API。文档在这里:https ://angular.io/docs/ts/latest/guide/animations.html
现在,这一切看起来都很简单,但是当我们更改应用程序 url(导航到子视图)时,我想应用 CSS 转换,但是我不确定如何在 main.ts 组件或任何组件中捕获位置更改事件我希望在其中添加animations
属性。文档给出的示例使用@triggerName
语法来应用或切换动画,但我不确定这是否适用于希望动画页面转换时。
所以如果这是我的main.html
:
这是在我的main.ts
我正在使用@ngrx/router,我知道这带有一个 LocationChange 类。非常感谢您的任何建议......如果您知道一个好的教程的链接,将不胜感激!
这是我试图用 AngularJS 实现的效果:https ://codepen.io/schonert/pen/InAzi
angular - 如何将 Angular2 路由器连接到 ngrx/store?
我正在使用 ngrx/store 来管理我的 Angular2 应用程序中的状态。
如何将 Angular2 中最新的(3.0.0)路由器连接到 ngrx/store。这里提供的方法是关于旧的 Angular2 路由器:https ://github.com/CodeSequence/ngrx-store-router
基本上我想做的就是让我的路由器成为我的状态的一部分。
typescript - 无法实例化循环依赖
我正在使用@ngrx/effects和@angular/router。(Angular 2 版本 RC4)
如果我private router: Router
在效果中添加这一行:
我会收到这个错误:
例外:无法实例化循环依赖!(Token Application Initializer -> Token @ngrx/effects Bootstrap Effects -> Router -> ApplicationRef -> ApplicationRef_)
我该如何解决这个问题?谢谢
angular - Angular2 路由器 VS ui-router-ng2 VS ngrx 路由器
使用ui-router-ng2而不是新的 Angular2 路由器有什么好处和坏处?过去我在 Angular 1.x 中使用 ui-router 而不是使用 ngRoute,因为我需要更好地支持嵌套状态/路由。
那么现在,Angular2 呢?我想听听你的意见,这样我就可以评估这两个机会。
此外,在谷歌上搜索和搜索我发现了我不知道的ngrx/router 。你能告诉我 Angular2 的内置路由器、Angular2 的新ui-router和ngrx 路由器有什么区别吗?
angular - @ngrx/store 订阅商店的一部分并避免检测到其他部分的更改
背景
我商店中的一个减速器处理在应用程序中选择的东西。该商店的界面(我们称之为app
)可能如下所示:
因此,我希望订阅仅在选择不同的“项目”时才执行操作。我写了这样的东西:
此功能在selectedProject
更改时起作用。但是,它也会在selectedPart
更改时发挥作用。显然,无论地图如何,它都会倾听整个app
商店的声音。这就说得通了。
问题
我不希望这种情况发生。我只希望我的函数在selectedProject
更改时执行。
我知道我可以分成不同selectedProject
的selectedPart
商店来解决这个问题。但是,我很快就会拥有很多很多商店。也许这就是它的本意?
还有其他方法吗?我可以使用此界面保留商店并拥有仅检测selectedProject
商店部分更改的订阅吗?