你可以使用相同的视图和角度控制器而不覆盖数据吗?

时间:2016-01-19 15:31:22

标签: javascript angularjs html5 pdf-viewer

我有一个使用PDF viewer-pdf angularjs制作的应用程序,此查看器使用html模板 有了自己的控制器angularjs,这个观察者想要在不同的目录中使用它(即它 全局)查看器,当我打开一个PDF目录和位置时,我工作得很好,但是当你打开另一个时 我在上一个窗口中解锁了其他加载pdf而没有打开的地方,即数据覆盖了我 有没有办法解决这个问题,在几个目录中打开相同的查看器而不影响其他目录?

2 个答案:

答案 0 :(得分:0)

如果您使PDF查看器成为指令,您应该能够实现这一目标,因为指令在它们自己的范围内运行。

答案 1 :(得分: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);