AngularJS нг-если не работает во всех модулях? - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь показать / скрыть перетаскивание, когда документ появляется на экране.Я использовал AngularJS, и это сработало.Однако это работает не во всех модулях.Хотя я всегда один и тот же код, но из других модулей:

рабочий код:

<div ngf-drop ngf-select ng-model="files" ngf-multiple="true" ngf-allow-dir="true" ng-show="dropIsVisible === true">
    <div class="drop-area-full-page">
        <div class="drop-area-full-page__graphic"></div>
        <div class="drop-area-full-page__info" id="drop-area-full-page__info" ng-bind-html="dropText"></div>
    </div>
    </div>

И в AngularJS:

$window.addEventListener("dragenter", function (e) {
    if (isFile(e)) {
        lastTarget = e.target;
        $scope.dropIsVisible = true;   
        name = getName($scope, getParent());                     
        $scope.dropText =
            "<b> Dokument ablegen zu </b>" + "<b>" + name+ "</b>";
    }
});

$window.addEventListener("dragleave", function (e) {
    e.preventDefault();
    if (e.target === document || e.target === lastTarget) {
        $scope.dropIsVisible = false;        

    }
});

$window.addEventListener("dragover", function (e) {
    e.preventDefault();
    $scope.dropIsVisible = true;
});
function getParent() {
    return {
        entityName: $stateParams.entity,
        id: $scope.parentId
    };
}

$window.addEventListener("drop", function (e) {
    e.preventDefault();
    $scope.dropIsVisible = true;           
    var qs = e.dataTransfer.files[0].name;
    var parent = getParent();
    DokumentUploadMixin.Prepare(qs, e.dataTransfer.files[0], $scope, parent, projection, qs);
    //$window.location.href = routeUtils.getCreateDokumentUrl("Dokument", getParent(), projection, qs);
});

};

И код, который не работает:

<div ngf-drop ngf-select ng-model="files" ngf-multiple="true" ngf-allow-dir="true" ng-show="dropIsVisible === true">
    <div class="drop-area-full-page">
        <div class="drop-area-full-page__graphic"></div>
        <div class="drop-area-full-page__info" id="drop-area-full-page__info" ng-bind-html="dropText"></div>
    </div>
</div>

Что такое же .... Какие советы я должен сделать, чтобы он работал во всех модулях?

1 Ответ

0 голосов
/ 04 февраля 2019

ответ был то, что я показал применение области к слушателю событий, потому что я добавил настраиваемые слушатели событий, которые не отслеживаются Angularjs.Чтобы заставить его работать, применяя внутренний обратный вызов addEventListener с $ scope. $ Apply, чтобы сообщить угловому обновлению модели.

   $window.addEventListener("dragenter", function (e) {
        $scope.$apply(function() {
            if (isFile(e)) {
                lastTarget = e.target;
                $scope.dropIsVisible = true;   
                name = getName($scope, getParent());                     
                $scope.dropText =
                    "<b> Dokument ablegen zu </b>" + "<b>" + name+ "</b>";
            }
        });
    });

    $window.addEventListener("dragleave", function (e) {
        $scope.$apply(function() {
            e.preventDefault();
            if (e.target === document || e.target === lastTarget) {
                $scope.dropIsVisible = false;        
            }
        });
    });

    $window.addEventListener("dragover", function (e) {
        $scope.$apply(function() {
           e.preventDefault();
           $scope.dropIsVisible = true;
        });
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...