From 52149bd9e18fef707e18164bb571a814b5ea2911 Mon Sep 17 00:00:00 2001 From: William Buchwalter Date: Fri, 4 Dec 2015 16:14:57 -0500 Subject: [PATCH 1/2] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 31a4b68..36df8b0 100644 --- a/README.md +++ b/README.md @@ -137,6 +137,9 @@ $ngRedux.subscribe(() => { This means that you are free to use Redux basic API in advanced cases where `connect`'s API would not fill your needs. +## Dependency Injectable Middleware +You can use angularjs DI mechanism to resolve dependencies inside a `middleware`. +To do so, define your middleware as a service ## Routers See [redux-ui-router](https://github.com/neilff/redux-ui-router) to make ng-redux and UI-Router work together.
From f6440a764bf2efe49984141b5163364d1d0ec220 Mon Sep 17 00:00:00 2001 From: William Buchwalter Date: Wed, 9 Dec 2015 09:55:09 -0500 Subject: [PATCH 2/2] Update README.md --- README.md | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 36df8b0..7a12fd5 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ For Angular 2 see [ng2-redux](https://github.com/wbuchwalter/ng2-redux). - [Installation](#installation) - [Quick Start](#quick-start) - [API](#api) +- [Dependency Injectable Middleware](#dependency-injectable-middleware) - [Routers](#routers) - [Using DevTools](#using-devtools) - [Additional Resources](#additional-resources) @@ -138,8 +139,26 @@ $ngRedux.subscribe(() => { This means that you are free to use Redux basic API in advanced cases where `connect`'s API would not fill your needs. ## Dependency Injectable Middleware -You can use angularjs DI mechanism to resolve dependencies inside a `middleware`. -To do so, define your middleware as a service +You can use angularjs dependency injection mechanism to resolve dependencies inside a `middleware`. +To do so, define a factory returning a middleware: + +```Javascript +function myInjectableMiddleware($http, anotherDependency) { + return store => next => action => { + //middleware's code + } +} + +angular.factory('myInjectableMiddleware', myInjectableMiddleware); +``` + +And simply register your middleware during store creation: + +```Javascript +$ngReduxProvider.createStoreWith(reducers, [thunk, 'myInjectableMiddleware']); +``` + +Middlewares passed as **string** will then be resolved throught angular's injector. ## Routers See [redux-ui-router](https://github.com/neilff/redux-ui-router) to make ng-redux and UI-Router work together.