2

私は、PhoneGap を使用して AngularJS 1.5 プロジェクトに取り組んでいます。HTML出力をテキストファイルに書きたいと思います。

innerHTML 関数を使用しようとしましたが、これは間違った出力を返します。たとえば、次のように返されます。

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

私が本当に保存したいもの:

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

誰かが解決策を持っていますか?ありがとう!

4

2 に答える 2

0

innerHTML実際に角度を使用している場合は、バインディングが完了した後に使用できるはずです。(フィドル)

<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);
    };
于 2013-11-13T08:27:20.090 に答える
0

これは、一見したよりも少し複雑になります。Angular には、簡単に把握できる何らかの出力バッファリングがありません。最善の策は、ブラウザを使用してレンダリングされたマークアップを保存することです。Firefox では、 を使用できますView Source » View Generated Source。Chrome では、ツール メニューの下に同様のオプションがあります。

または、コードの道をたどりたい場合は、Angular開発者の 1 人であるMisko Heveryからの応答を次に示します。

私たちはこれを行っていませんが、やりたいと感じたら、ここで試すことができます

  • node.js を実行する
  • ノード用の多数の DOM 実装のインストール
  • node.js 内で実行されている角度ページを取得します。
  • $browser サービスを取得し、notifyWhenNoOutstandingRequests()これを呼び出すと、ページのレンダリングがいつ終了したかがわかります
  • document.html() を実行して、レンダリングされた HTML を取得します

[...]

于 2013-11-13T08:08:11.520 に答える