[英]Unable to get the count from an observable in angular 4 with @ngrx/effects@4.1.1 and @ngrx/store@4.1.1
我正在嘗試通過頁面效果將元素插入數據庫。 單擊提交后,頁面將重定向到儀表板頁面,在其中顯示用戶為用戶添加到數據庫中的許多元素的計數。 但是在重定向成功之后(意味着一旦成功創建元素),我將看不到計數,而是只能在刷新后才能看到。 請按照屏幕
在創建頁面中,單擊創建按鈕后,將調用以下代碼
this._store.dispatch(new SomeAction.AddNewAction( this.somemodel ));
this._router.navigate(['/dashboard']);
在儀表板構造函數中
this._store.dispatch(new SomeAction.LoadModelAction(userid));
this.modelObserver$ = this._store.select('models');
在dashboard.component.html頁面
<div class="text-right">
<span class="badge badge-secondary">You have {{ (modelObserver$ | async).length }} model</span>
</div>
任何幫助將非常感激..
我猜想LoadModelAction
正在從API /數據庫加載記錄。 我不確定在構造函數中分派動作是否是個好主意。
首先:即使您要執行此操作,也應使用ngOnInit
方法調度它。
其次:您不確定如果調用此操作,則記錄已經存在。
如果使用的是ngrx-effects,則解決方案很簡單:在成功執行AddNewAction
Action之后,應調用分派LoadModelAction。 這意味着您應該至少具有3個動作: AddNewAction
, AddNewSuccessAction
和LoadModelAction
。 最好的解決方案是,如果API返回您的模型作為添加新元素的響應(在這種情況下,您僅需要AddNewAction
和AddNewSuccessAction
)。 如果您對理解它有一些疑問:請分享您的效果代碼,我將嘗試逐步解釋它:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.