【问题标题】:AngularJS : Write HTML Output to textfileAngularJS:将 HTML 输出写入文本文件
【发布时间】:2013-11-25 17:34:36
【问题描述】:

我正在使用 PhoneGap 开发一个 AngularJS 1.5 项目。 现在我想将 HTML 输出写入文本文件。

我试图使用 innerHTML 函数,但是这会返回错误的输出,例如这个返回:

<html>
  <body>Hi {{ Name }}</body>
</html>

我真正想保存的东西:

<html>
  <body>Hi Developer</body>
</html>

有人有解决办法吗? 谢谢!

【问题讨论】:

    标签: javascript html angularjs cordova output


    【解决方案1】:

    这将比乍看之下要复杂一些。 Angular 没有某种输出缓冲,你可以轻松掌握。您最好的选择是使用浏览器保存呈现的标记。在 Firefox 中,您可以使用 View Source » View Generated Source。在 Chrome 中,您可以在工具菜单下找到类似的选项。

    或者,如果您想走代码之路,这里是Angular devs, Misko Hevery 之一的回复:

    我们还没有这样做,但如果你觉得可以,这里就是你可以做到的 试试

    • 让 node.js 运行
    • 为节点安装许多 DOM 实现
    • 让您的 Angular 页面在 node.js 中运行。
    • 获取 $browser 服务并致电 notifyWhenNoOutstandingRequests() 这将告诉您何时 页面渲染完成
    • 执行 document.html() 以获取呈现的 HTML

    [...]

    【讨论】:

    • 感谢您的回答。唯一的问题是我在我的项目中使用了PhoneGap。所以我不能使用上述解决方案。我想保存 html 以生成页面的 PDF...
    • 那么计算的 CSS 样式呢?怎么和html一起保存?
    【解决方案2】:

    如果您实际使用的是 angular,那么您应该能够在绑定完成后使用 innerHTML。 (fiddle)

    <div ng:controller="CombinedCtrl" id="combined">
        X: {{x}}, Y: {{y}}
        <button ng-click="showHtml()">Show HTML</button>
    </div>
    

    JS:

        $scope.showHtml = function() {
            alert('HTML IS:\r\n' + document.getElementById('combined').innerHTML);
        };
    

    【讨论】:

    • 我认为这是最好的解决方案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-09-10
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多