4

これは AngularJS アプリ用です。サービスに依存するカスタム ディレクティブがあります。

私が本当に興味を持っているのは、モデルと DOM の両方に影響を与えるユーザー アクションに対処するための「角度のある方法」です。いくつかのコード例:

HTML:

<form foo-places>
    <!--other stuff -->
    <span ng-repeat="place in places">
        <button ng-click="removePlace(place)">remove {{place}}</button>
    </span>        
</form>

JS:

angular.module('foo.directives', []).directive('fooPlaces', 
function(placesService) {
    return {
        controller : function($scope) {
            $scope.places = placesService.places;
                    $scope.removePlace = function(name) {
                placesService.removePlace(name);
            };
            $scope.$on('placesChanged', function() {
                $scope.places = placesService.places;
            });
        },
        link : function($scope, element, attrs) {
                //code to do stuff when user removes a place
        }
    }
})

ユーザーが (ボタンをクリックして) 場所を削除すると、DOM をいじる必要もあります。たとえば、ウィンドウを一番上にスクロールするなどです。モデルと、DOM を実行するディレクティブ内の別の関数...ただし、両方とも同じユーザー アクションに基づいています。

私はこれを考えすぎていますか、それとも本当に何かが欠けていますか? モデルと DOM の両方を扱う単一のユーザー アクションをどのように処理すればよいですか?

4

1 に答える 1