• Как получить данные из элемента в AngularJs?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    вам нужно реализовать директиву, которая будет отвечать за drag'n'drop объектов, и внутри организовать калбэки, которые можно задавать через scope. (например что-то типа on-drop). Для удобства настройки можно сделать несколько директив, и одну главную (читать про require).

    Работать с элементами можно только в директивах, но директивы не должны ничего знать о вашей бизнес логике. То есть если у вас появляются конструкции вида angular.element(garage).scope() то это повод задуматься.

    Должно получиться что-то такое:
    <ul>
    <li data-ng-repeat="car in Model.cars" data-draggable="car" data-draggable-item="car">{{car.modelName}}</li>
    </ul>
    <ul>
        <li data-ng-repeat="garage in Model.garages"  data-droppable="car" data-on-drop="doSomething">{{garage.name}}</li>
    </ul>

    атрибуты data-draggable и data-droppable будут отмечены тегами, что бы указать какие объекты можно тягать куда. Для вашей задачи можно и без этого.

    // controller
    $scope.doSomething = function (car, garage) {
        // ставим машинку в гараж, убираем ее из списка если хотим, или что-то еще...
        // контроллер в этом случае вообще ничего не знает о drag n drop, 
        // только о том что что-то нужно сделать с данными.
    };
    Ответ написан