2014-01-03 2 views
2

Как вы вручную вводите экземпляр в угловой дротик? Это будет эквивалентно следующему в угловых значениях:Ручная инъекция в дарце

var myInjector = angular.injector(["ng"]); 
var $http = myInjector.get("$http"); 

ответ

2

Пример кода изнутри компонента.

@NgComponent(
    selector: 'rating', 
    publishAs: 'ctrl') 
class RatingComponent { 
    Injector _injector; 
    RatingConfig _config; 

    RatingComponent(this._injector) { 
    _config = _injector.get(RatingConfig); 
    // or 
    _config = injectByName("RatingConfig"); 
    } 

    void injectByName(String typeName) { 
    _injector.types.takeWhile((Type e) { 
     if (e.toString() == typeName) { 
     _config = _injector.get(e); 
     return false; 
     } 
     return true; 
    });  
    } 
} 
2

Подход использования _injector.get (RatingConfig) будет работать.

В качестве примера, код фильтра называет «GET» явно на шприце, чтобы получить экземпляр фильтра: lib/core/filter.dart, line 50

1

Если вам нужно вручную вводить экземпляр, потому что ваш в методе Main(), вы можете сделать следующее:

class MyAppModule extends Module { 
    MyAppModule() { 
    type(MyService); 
    } 
} 

main() { 
    Injector injector = applicationFactory().addModule(new MyAppModule()).run(); 
    MyService myService = injector.get(MyService); 
} 
Смежные вопросы