2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-04-22 08:06:51 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								p.location-badge.
							 
						 
					
						
							
								
									
										
										
										
											2015-06-01 22:51:00 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  exported from <a href='../di'>angular2/di</a>
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  defined in <a href="https://github.com/angular/angular/tree/3a0410a/modules/angular2/src/di/binding.ts#L34-L255">angular2/src/di/binding.ts (line 34)</a>
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:markdown
							 
						 
					
						
							
								
									
										
										
										
											2015-04-26 08:01:04 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  Describes how the <a href='Injector-class.html'><code>Injector</code></a> should instantiate a given token.
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								  
							 
						 
					
						
							
								
									
										
										
										
											2015-04-26 08:01:04 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								  See <a href='bind-function.html'><code>bind</code></a>.
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  ## Example
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  ```javascript
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  var injector = Injector.resolveAndCreate([
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    new Binding(String, { toValue: 'Hello' })
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  ]);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  expect(injector.get(String)).toEqual('Hello');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								.l-main-section
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  h2 Members
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  .l-sub-section
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    h3 constructor
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    pre.prettyprint
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      code.
							 
						 
					
						
							
								
									
										
										
										
											2015-06-01 22:51:00 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        constructor(token, {toClass, toValue, toAlias, toFactory, toAsyncFactory, deps}: {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        toClass?: Type,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        toValue?: any,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        toAlias?: any,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        toFactory?: Function,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        toAsyncFactory?: Function,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        deps?: List<any>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      })
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    :markdown
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-06-01 22:51:00 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  .l-sub-section
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    h3 token
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    :markdown
							 
						 
					
						
							
								
									
										
										
										
											2015-05-01 06:37:29 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      Token used when retrieving this binding. Usually the `Type`.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  .l-sub-section
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    h3 toClass
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    :markdown
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      Binds an interface to an implementation / subclass.
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      Becuse `toAlias` and `toClass` are often confused, the example contains both use cases for easy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      comparison.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      ```javascript
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      class Vehicle {}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      class Car extends Vehicle {}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      var injectorClass = Injector.resolveAndCreate([
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        Car,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        new Binding(Vehicle, { toClass: Car })
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      ]);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      var injectorAlias = Injector.resolveAndCreate([
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        Car,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        new Binding(Vehicle, { toAlias: Car })
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      ]);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      expect(injectorClass.get(Vehicle)).not.toBe(injectorClass.get(Car));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      expect(injectorClass.get(Vehicle) instanceof Car).toBe(true);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      expect(injectorAlias.get(Vehicle)).toBe(injectorAlias.get(Car));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      expect(injectorAlias.get(Vehicle) instanceof Car).toBe(true);
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      ```
							 
						 
					
						
							
								
									
										
										
										
											2015-06-01 22:51:00 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  .l-sub-section
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    h3 toValue
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    :markdown
							 
						 
					
						
							
								
									
										
										
										
											2015-05-01 06:37:29 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      Binds a key to a value.
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      ```javascript
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      var injector = Injector.resolveAndCreate([
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        new Binding(String, { toValue: 'Hello' })
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      ]);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      expect(injector.get(String)).toEqual('Hello');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      ```
							 
						 
					
						
							
								
									
										
										
										
											2015-06-01 22:51:00 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  .l-sub-section
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    h3 toAlias
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    :markdown
							 
						 
					
						
							
								
									
										
										
										
											2015-05-01 06:37:29 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-04-20 13:57:43 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      Binds a key to the alias for an existing key.
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-06-01 22:51:00 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      An alias means that <a href='Injector-class.html'><code>Injector</code></a> returns the same instance as if the alias token was used.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      This is in contrast to `toClass` where a separate instance of `toClass` is returned.
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-06-01 22:51:00 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      Becuse `toAlias` and `toClass` are often confused the example contains both use cases for easy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      comparison.
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      ```javascript
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      class Vehicle {}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      class Car extends Vehicle {}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      var injectorAlias = Injector.resolveAndCreate([
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        Car,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        new Binding(Vehicle, { toAlias: Car })
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      ]);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      var injectorClass = Injector.resolveAndCreate([
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        Car,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        new Binding(Vehicle, { toClass: Car })
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      ]);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      expect(injectorAlias.get(Vehicle)).toBe(injectorAlias.get(Car));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      expect(injectorAlias.get(Vehicle) instanceof Car).toBe(true);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      expect(injectorClass.get(Vehicle)).not.toBe(injectorClass.get(Car));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      expect(injectorClass.get(Vehicle) instanceof Car).toBe(true);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      ```
							 
						 
					
						
							
								
									
										
										
										
											2015-06-01 22:51:00 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  .l-sub-section
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    h3 toFactory
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    :markdown
							 
						 
					
						
							
								
									
										
										
										
											2015-05-01 06:37:29 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      Binds a key to a function which computes the value.
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      ```javascript
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      var injector = Injector.resolveAndCreate([
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        new Binding(Number, { toFactory: () => { return 1+2; }}),
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        new Binding(String, { toFactory: (value) => { return "Value: " + value; },
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                              dependencies: [Number] })
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      ]);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      expect(injector.get(Number)).toEqual(3);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      expect(injector.get(String)).toEqual('Value: 3');
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-06-01 22:51:00 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  .l-sub-section
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    h3 toAsyncFactory
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    :markdown
							 
						 
					
						
							
								
									
										
										
										
											2015-05-01 06:37:29 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      Binds a key to a function which computes the value asynchronously.
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      ```javascript
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      var injector = Injector.resolveAndCreate([
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        new Binding(Number, { toAsyncFactory: () => {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								          return new Promise((resolve) => resolve(1 + 2));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        }}),
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        new Binding(String, { toFactory: (value) => { return "Value: " + value; },
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                              dependencies: [Number]})
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      ]);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      injector.asyncGet(Number).then((v) => expect(v).toBe(3));
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      injector.asyncGet(String).then((v) => expect(v).toBe('Value: 3'));
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      ```
							 
						 
					
						
							
								
									
										
										
										
											2015-06-01 22:51:00 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      The interesting thing to note is that event though `Number` has an async factory, the `String`
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      factory function takes the resolved value. This shows that the <a href='Injector-class.html'><code>Injector</code></a> delays
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      executing the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      `String` factory
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      until after the `Number` is resolved. This can only be done if the `token` is retrieved using
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      the `asyncGet` API in the <a href='Injector-class.html'><code>Injector</code></a>.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-06-01 22:51:00 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  .l-sub-section
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    h3 dependencies
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    :markdown
							 
						 
					
						
							
								
									
										
										
										
											2015-05-01 06:37:29 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      Used in conjunction with `toFactory` or `toAsyncFactory` and specifies a set of dependencies
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      (as `token`s) which should be injected into the factory function.
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      ```javascript
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      var injector = Injector.resolveAndCreate([
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        new Binding(Number, { toFactory: () => { return 1+2; }}),
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        new Binding(String, { toFactory: (value) => { return "Value: " + value; },
							 
						 
					
						
							
								
									
										
										
										
											2015-06-01 22:51:00 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                              dependencies: [Number] })
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								      ]);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      expect(injector.get(Number)).toEqual(3);
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      expect(injector.get(String)).toEqual('Value: 3');
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      ```
							 
						 
					
						
							
								
									
										
										
										
											2015-06-01 22:51:00 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  .l-sub-section
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    h3 resolve
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    pre.prettyprint
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      code.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        resolve()
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    :markdown
							 
						 
					
						
							
								
									
										
										
										
											2015-05-01 06:37:29 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-06-19 12:08:22 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      Converts the <a href='Binding-class.html'><code>Binding</code></a> into <a href='ResolvedBinding-class.html'><code>ResolvedBinding</code></a>.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      <a href='Injector-class.html'><code>Injector</code></a> internally only uses <a href='ResolvedBinding-class.html'><code>ResolvedBinding</code></a>, <a href='Binding-class.html'><code>Binding</code></a> contains
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      convenience binding syntax.
							 
						 
					
						
							
								
									
										
										
										
											2015-06-01 22:51:00 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								      
							 
						 
					
						
							
								
									
										
										
										
											2015-04-19 13:53:18 -07:00