Dependency Injection in Emberjs
I read some articles about Emberjs Dependency Injection(DI) and try to upgrade my old project food_ntpc to use DI. The pros of DI is to reduce gobal object and make code clean, testing easily. There are few changes.
I create a
CategoryManager and put in
1 2 3 4 5 6
It’s very easy to access through
FoodNtpc.CategoryManager everywhere. BUT it makes testing hardly and more coupling.
1 2 3
Only the Ember.Object class can be registered. I change
class CategoryManager to
CategoryManager = Ember.Object.extend.
Then create an
initializer to register the
foodntpc:categoryManager naming. Set singleton to true because i want only one CategoryManager in system.
1 2 3 4 5 6 7 8 9 10 11 12
Next, create another initializer to inject those dependency. We can use
before to adjust initializer sequence.
application.js line 6 means
foodntpc:categoryManager is injected to IndexRoute and use
In line 7 means inject into all controller.
1 2 3 4 5 6 7 8 9
In IndexRoute, we use
this.CategoryManager to access it.
1 2 3