私は、サーバーにJSONとしてデータを取得する要求を出すのではなく、HTMLのデータからAngularJSモデルの一部を初期化しようとしているか、ページに直接JSONオブジェクトを埋め込むことを考えています。AngularJS:HTMLのデータからモデルを初期化しますか?
(サーバーは現在、JSONではなくHTMLでデータをレンダリングしていますが、現在は「あまりにも多くの」コードを書き直すことは避けたいと思いますし、HTMLは検索エンジンでうまく機能します。 アプリケーション自体はディスカッションですシステム)。
私のHTML(簡体字)の例を以下に示します。その中に埋め込まれたデータは、ポストID(123456)、作者ID(789)、作者名(キティオーバーロード)及びテキストメッセージ("キツンズ
キャッツ!ちょうど冗談。
")である。
<div id="post-123456">
<div class="dw-p-hd">
By <span data-dw-u-id="789">Kitty overlord</span>
</div>
<div class="dw-p-bd">
<p>Kittens</p><p><strike>Cats! Just kidding.</strike></p>
</div>
</div>
そして、私はAngularJSコントローラを構築したい、とのようなものに$scope
を初期化したい:
$scope = {
postId = 123456,
authorId = 789,
text = 'Kittens ....',
}
おそらく、私はそうのようなng-init
を使用することができます。
<div id="post-123456"
ng-controller="CommentCtrl"
ng-init="{ postId =..., authorId =..., text =... }"> <--- look here
<div class="dw-p-hd">
By <span data-dw-u-id="789">Kitty overlord</span>
</div>
<div class="dw-p-bd">
<p>Kittens...</p>
</div>
</div>
をしかし、私ng-init
に1回、HTMLに1回データを2回送信しています。私はむしろ何とかng-init
属性をスキップすると思います。
とにかくこれは大丈夫だと思いますか?
それは可能ではありませんか悪いですか?代わりに何かをする必要がありますか?
データを2回含むことを避ける方法はありますか? (両方、およびng-init
でHTMLで)
あなたの答えをありがとう。あなたが何を記述しているのかは、実際には「JSONオブジェクトをページに直接埋め込む」ということでした。これは誰もがやっているように思われるので、実際は最高のアプローチです。そしてあなた自身の質問への役に立つリンクのため。私はあなたの質問のタイトルを実際に認識していると思いますが、DOMから「抽出」されるのではなく、DOMにデータを挿入することについて考えていました。 – KajMagnus
助けてくれたらうれしい! (はい、私の英語は完璧ではありませんので、いくつかのニュアンスは不明ですが、ごめんなさい):-) – Cherniv