Dyrektywy AngularJS - najlepsze praktyki podczas używania ngModel z widżetem jQuery

Oto mój problem. Na przykład mamy następującą dyrektywę, która używa widżetu jQuery za kulisami:

module.directive('myWidget', [function() {
    return {
        require: "ngModel",
        restrict: "A",
        replace: true,
        templateUrl: "templates/myWidget.html",
        link: function(scope, element, attrs, ctrl) {
            element.widget_name().on('value_updated', function(event) {
                scope.$apply(function() {
                    var newModelValue = event.some_value;
                    ctrl.$setViewValue(newModelValue);
                });
            });

            scope.$watch(attrs["ngModel"], function(value){
                element.widget_name('set_value', value);
            });
        }
    };
}]);

Tak więc, jeśli wartość modelu ulegnie zmianie, zostanie wykonany program obsługi zarejestrowany przy użyciu $ watch, aby nasłuchiwać zmian w modelu, a co za tym idzie, zostanie również wykonana metoda 'set_value' widgetu. Oznacza to, że zostanie wywołane zdarzenie „value_updated”.

Moje pytanie brzmi: jaka jest najlepsza praktyka implementowania podobnego zachowania w dyrektywach, aby uniknąć dodatkowych wezwań do obsługi zdarzeń i obserwatorów DOM?

questionAnswers(1)

yourAnswerToTheQuestion