Angularjs - инъекция зависимостей во время выполнения?
Простой, надеюсь.
Здесь plunker для справки.
Я знаю, как указать зависимость во время компиляции (см. MainCtrlInjected controller). Но как я могу уменьшить зависимость во время выполнения, указав имя этой зависимости? (см. контроллер MainCtrlInjectedRuntime)
Ответы
Ответ 1
Вы можете использовать $injector, чтобы получить свое значение во время выполнения:
Проверьте мой раздвоенный плункер: http://plnkr.co/edit/iVblEU?p=preview
код:
app.controller('MainCtrlInjectedRuntime', [
'$scope',
'$injector'
($scope, $injector) ->
nameValHandle = 'nameVal'
# !!! This is how you inject at runtime
name = $injector.get(nameValHandle)
$scope.name = name
])
Ответ 2
Я просто попадаю в angularjs, но я считаю, что подходящим способом справиться с этой ситуацией было бы внедрение службы в MainCtrlInjectedRuntime. У внедренной службы будет свой метод somegetGetNameFromValue.