У меня есть моя собственная директива: <form-wrapper>
В настоящее время в этой директиве используется собственный внутренний контроллер, который использует службу Service
(User
)
Вот так:
directives.directive("formWrapper", ['User', function(User) {
return {
...
controller: function($scope, $location, User) {
$scope.fields = User.get( {id: "1"} ); // GET
...
Как вы можете видеть: я использую жестко закодированную службу (User
).
Вопрос: Как передать Сервис в качестве аргумента в Директиву? Чтобы использовать его так:
Service = comesFromArgument
$scope.fields = Service.get( {id: "1"} )
Я предполагаю, что если передать имя службы как строку (как имя службы), это не поможет. И прохождение аргумента обычно происходит в link-function
, но не в контроллере.
ОБНОВЛЕНИЕ (больше объяснений):
При использовании directives.directive("formWrapper", ['User', function(User) {
имя "Пользователь" приведет к использованию службы пользователя, потому что это так, как я полагаю, работает IoC. Он знает, что это услуга. Но если бы я сделал:
<form-wrapper service="User">
//это то, что я хочу.
Затем "Пользователь" будет просто строкой, а не ссылкой на службу пользователя.