Javascript 如何将服务注入链接函数?

Javascript 如何将服务注入链接函数?,javascript,angularjs,leaflet,angular-formly,Javascript,Angularjs,Leaflet,Angular Formly,我需要使用链接函数来操作DOM的某些元素,但为此我需要使用服务。在控制器功能中,我知道如何做到这一点,但在链接功能中,我不知道如何实现这一点 --编辑-- 让我更清楚地说: 我用的是带传单的角型。但在传单中,必须将活动设置为链接功能,如下所示: link: function($scope) { $scope.to.marker.on('dragend', function(eventArguments) { var newPosition = eventArguments.targe

我需要使用链接函数来操作DOM的某些元素,但为此我需要使用服务。在控制器功能中,我知道如何做到这一点,但在链接功能中,我不知道如何实现这一点

--编辑-- 让我更清楚地说:

我用的是带传单的角型。但在传单中,必须将活动设置为
链接
功能,如下所示:

link: function($scope) {
  $scope.to.marker.on('dragend', function(eventArguments) {
    var newPosition = eventArguments.target.getLatLng();
    $scope.model.geocodes = newPosition;
  });
}
问题是,我需要在此基础上注入一个服务。在angular formly()中,它向我展示了我可以在
controller:function($scope)
上注入服务,但是不要给我在
链接上做同样的事情的方法,当我在链接中更改
$scope.model.geocodes
时,它不会触发我在
自定义模板的控制器中设置的
观察者


我希望我说得很清楚。

我相信您可以将其注入指令并将其捕获到链接函数中:

function SomeDirective(SomeService){
    return{
        link:function(){
            SomeService.something();
        }
    }
}

SomeDirective.$inject = [
    "SomeService"
];

angular
    .module("some-module")
    .directive("some", SomeDirective);

这是不正确的做法。您应该首先解析控制器中的任何数据,然后,若必须,使用解析后的值操作dom元素。我假设您正在使用$scope,这样您就可以使用它了。我建议使用ControllerAs语法。对于Angular 1.5.x,理想情况下应该使用组件和$element injectable,并依靠视图来处理dom中的任何更改。不过,许多方法都是有效的,只是我个人的偏好。@musefan我把它理解为“如何在指令的链接函数中使用服务”