DOMのいくつかの要素を操作するにはリンク関数を使用する必要がありますが、そのためにはサービスを使用する必要があります。コントローラー関数では、これを行う方法はわかっていますが、リンク関数ではこれを達成する方法がわかりません。サービスをリンク機能に挿入するにはどうすればよいですか?
--EDIT-- 私はより明確に自分自身を入れてみましょう:私はリーフレットと角度-formly使用しています
。
link: function($scope) {
$scope.to.marker.on('dragend', function(eventArguments) {
var newPosition = eventArguments.target.getLatLng();
$scope.model.geocodes = newPosition;
});
}
問題は、私はこの上のサービスを注入する必要があるということです。しかし、リーフレットにイベントは、以下のようにlink
機能に置かなければなりません。角形では(http://docs.angular-formly.com/docs/formlyconfig)、私はcontroller: function($scope)
にサービスを注入することができますが、link
で同じことをする方法を教えてくれず、$scope.model.geocodes
を変更してもそれは起動しませんコントローラーに私のcustom-template
を設定したwatcher
。
私は自分自身を明確にすることを期待しています。
これは間違ったアプローチです。最初にコントローラ内のデータを解決し、必要ならば、解決された値でDOM要素を操作する必要があります。あなたが$ scopeを使っていると仮定して、それをフックすることができます。 ControllerAsの構文を使用することをお勧めします。 Angular 1.5.xでは、理想的にはコンポーネントを使用し、注入可能な$要素を使用し、ビューに依存してdomの変更を処理する必要があります。しかし、多くのアプローチが有効ですが、私の個人的な好みです。 – zilj
@musefan私はそれを「ディレクティブのリンク機能でどのようにサービスを使うのか」と理解しました。 – zero298