Подтвердить что ты не робот

Angularjs - инъекция зависимостей во время выполнения?

Простой, надеюсь.

Здесь plunker для справки.

Я знаю, как указать зависимость во время компиляции (см. MainCtrlInjected controller). Но как я могу уменьшить зависимость во время выполнения, указав имя этой зависимости? (см. контроллер MainCtrlInjectedRuntime)

4b9b3361

Ответ 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.