2016-01-19 3 views
0

У меня есть приложение, использующее PDF-просмотрщик-pdf angularjs, этот просмотрщик использует html-шаблон с собственным контроллером angularjs, этот зритель хочет использовать его в разных каталогах (то есть это глобальный), я хорошо работаю, когда Я открываю один каталог и позицию PDF, но когда вы открываете другой , я разблокировал другую, загрузив pdf в предыдущем окне и не открыв, то есть данные перезаписывают меня Есть ли способ разрешить это, откройте тот же просмотрщик в нескольких каталогах не затрагивая других?Можете ли вы использовать один и тот же обзор и угловой контроллер без перезаписи данных?

ответ

0

Если вы сделаете программу просмотра PDF директивой, вы должны быть в состоянии достичь этого, потому что директивы работают в пределах их собственного масштаба.

+0

Я использую директиву, которая находится в этот url https://github.com/sayanee/angularjs-pdf, может быть , как описано выше?. –

+0

О, хорошо. Таким образом, это похоже на № 6 «Начало работы», вы устанавливаете переменную области видимости, называемую pdfUrl. Как вы изменяете эту переменную при открытии нового экземпляра программы просмотра PDF? – gradorade

+0

Я приложил код ответа. –

0

Вот почему я создал услугу, как показано ниже:

angular.module('myModule',['pdf']).service('pdfService', function() { 

    var pdfURL = ""; 

    var defineURL = function (url) { 
     pdfURL = url; 
    }; 

    var getURL = function() { 
     return pdfURL; 
    }; 

    return { 
     defineURL: defineURL, 
     getURL: getURL 
    }; 

}).controller('DocControlador', ['$scope', 'pdfService', function ($scope, pdfService) { 

    $scope.pdfName = ''; 
    $scope.pdfUrl = pdfService.getURL(); 
    $scope.scroll = 0; 
    $scope.loading = 'cargando...'; 

    $scope.getNavStyle = function (scroll) { 
     if (scroll > 100) return 'pdf-controls fixed'; 
     else return 'pdf-controls'; 
    } 

    $scope.onError = function (error) { 
     console.log(error); 
    } 

    $scope.onLoad = function() { 
     $scope.loading = ''; 
    } 

    $scope.onProgress = function (progress) { 
     console.log(progress); 
    } 

}]) 

и здесь я перехожу я присваивать значения переменным обслуживание от другого контроллера:

pdfService.defineURL("\\Files\\1\\Charts\\" + $scope.fileName);