【问题标题】:AngularJS - can I display a document in a HTML file?AngularJS - 我可以在 HTML 文件中显示文档吗?
【发布时间】:2014-08-02 16:09:09
【问题描述】:

我正在寻找一种在我正在使用 AngularJS 和 Cordova/Phonegap 开发的移动应用程序中显示文档的解决方案。

我正在使用返回文件原始内容的 Web 服务,例如,我使用我的 AngularJS 服务来使用 Web 服务获取文件,它返回的是文件的原始内容。在我下面显示的情况下,它是一个 Word 文档。但它可以是 PDF、Excel、Powerpoint 等...

我对 AngularJS 比较陌生,并且只有一些 HTML 和 Javascript 经验,我正在寻找有关使用来自 Web 服务的原始数据在我的应用程序中内联显示文档的最佳方法的指导。

以下是我当前的代码和我设备中的图像,以显示我当前得到的内容。我的问题是从这里让文档在应用程序中处于可查看状态的最佳方法是什么?

我的服务:

myApp.services.factory('DownloadDocResource', ['$resource', function    ($resource) {
     return $resource('http://myWebSerivceURL/Documents/myTestDoc.doc', {}, {'query':  {method: 'GET', isArray: false}});
}]);

myApp.services.factory('DownloadDocService', ['$q', 'DownloadDocResource', function($q, DownloadDocResource) {
return {
    getDocument: function() {
        var delay = $q.defer();
        DownloadDocResource.query(
            function (response) {
                delay.resolve(response);
            },
            function (response) {
                delay.reject("can't get document source");
            });
        return delay.promise;
    }
}
}]);

我的控制器:

myApp.controllers.controller("DownloadDocCtrl", ['$scope', 'DownloadDocService',
function ($scope, DownloadDocService) {
    DownloadDocService.getDocument().then(function (document) {
        $scope.document = document;
    });
}
]);

我的 HTML:

<div style="color:#FFFFFF" ng-controller="DownloadDocCtrl">
{{document}}
</div>

结果:

【问题讨论】:

    标签: html angularjs cordova document angular-services


    【解决方案1】:

    不,您必须有某种方法来解析文档。 DocX 实际上是一个巨大的 xml 文件,我很确定除非微软提供了一种使用 silverlight 的方法,否则它可能无法单独使用 angular 来完成。

    但是,您也许可以在您的 Android 应用程序上使用一些本机意图......或者您可以使用一些文档库编写自定义意图。我强烈推荐http://poi.apache.org/

    这个答案:

    以下是一些可能对创建此意图访问有用的链接。用户可能需要对发出 .doc mimetype 的意图做出反应的东西。但是文档应该会清除其中的一些内容。

    Is there an Intent for viewing documents (Word, Excel, Powerpoint, PDF, etc.) in Android?

    http://devgirl.org/2013/07/17/tutorial-how-to-write-a-phonegap-plugin-for-android/

    【讨论】:

      【解决方案2】:
      1. 您的所有用户是否都拥有相同的文档应用程序,例如 Word、PDF、Excel? 等等?
        1. 您是否针对任何特定的客户端应用程序?例如所有用户都应该安装 Microsoft Office?

      以上问题还将决定您从数据库/服务中获取的文件的格式。用户下载文件然后使用他们首选/安装的应用程序打开是一种选择吗?或者您正在开发通用文件查看器?

      【讨论】:

      • 应用程序中的内嵌通用查看器是首选选项,但下载文档并允许用户使用他们喜欢的应用程序打开它是可以接受的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 2011-04-28
      • 1970-01-01
      • 1970-01-01
      • 2010-10-02
      相关资源
      最近更新 更多