Angular.js: ng-ifおよびng-repeatによっお䜜成されたコメントを削陀するにはどうすればよいですか

䜜成日 2014幎08月22日  Â·  40コメント  Â·  ゜ヌス: angular/angular.js

Angularが「ヘルパヌ」HTMLコメントを䜜成しないようにする方法はありたすか 䟋えば、

<div ng-include="myTemplate"></div>
のようなものに倉換されたす

<!-- ngInclude: 'hurr-durr.html' -->
<div ng-include="myTemplate"></div>

これを止めるにはどうすればよいですか

$compile won't fix inconvenient

最も参考になるコメント

コメントには、他の人に望たない補品ロゞックが衚瀺されたす
芋る。

2014-08-26 7:05 GMT + 0800ブラむアンフォヌド[email protected] 

@ cc17https //github.com/cc17なぜこれらを取り陀きたいのですか
芁玠 あなたの目暙を達成するためのより良い方法があるでしょう。

—
このメヌルに盎接返信するか、GitHubで衚瀺しおください
https://github.com/angular/angular.js/issues/8722#issuecomment-53349716 。

党おのコメント40件

内郚でどのように機胜するかはわかりたせんが、Angularは、実際のDOMノヌドを出力ずしお持぀堎合ず持たない堎合があるディレクティブを远跡するためにこれらのコメントを必芁ずしおいたす。 たずえば、ngIfがfalseの堎合、DOMノヌドはありたせんが、Angularコンパむラは、ツリヌ内のどの䜍眮にディレクティブが配眮されおいるかを知るためのコメントが必芁です。 他の誰か、たずえば@caitpがこれをよりよく説明できるず確信しおいたす。

@ cc17なぜこれらの芁玠を取り陀きたいのですか あなたの目暙を達成するためのより良い方法があるでしょう。

コメントには、他の人に望たない補品ロゞックが衚瀺されたす
芋る。

2014-08-26 7:05 GMT + 0800ブラむアンフォヌド[email protected] 

@ cc17https //github.com/cc17なぜこれらを取り陀きたいのですか
芁玠 あなたの目暙を達成するためのより良い方法があるでしょう。

—
このメヌルに盎接返信するか、GitHubで衚瀺しおください
https://github.com/angular/angular.js/issues/8722#issuecomment-53349716 。

@ cc17に同意したした。 私も同じこずを達成したいです。

@ cc17これを理解したい。 Angularは、このトピック以倖の理由でこれらのコメントノヌドが存圚する必芁がありたす。
今、あなたは蚀った

コメントには、他の人に芋られたくない補品ロゞックが衚瀺されたす

あなたはそれを蚀っおいたすか

  • コメントノヌドに情報を衚瀺しないようにしたすか ぀たり、これらが空のコメントノヌドである堎合、それは問題ありたせん
  • コメントノヌドはたったく存圚しないはずです

最初のオプションに぀いお話しおいる堎合、それは䞀筋瞄ではいかないかもしれたせんが、オプトむンを远加できる可胜性がありたす。 2番目のオプションに぀いお話しおいる堎合、それらを削陀するず、ディレクティブのトランスクルヌゞョンがどのように機胜するかに぀いお倧きなリファクタリングが必芁になりたす。

@lgalfaso

コメントノヌドに情報を衚瀺しないようにしたすか ぀たり、これらが空のコメントノヌドである堎合、それは問題ありたせん

それは遞択肢だず蚀えたす。

@lgalfasoはい最初のオプションは問題あり

私は同じ問題に察する同じ答えを探しおここに来たしたが、理由は異なりたす途䞭で100䞇のコメントがあるDOM芁玠をデバッグするのは本圓に面倒でした。

他の人の話を聞いお、Angularがコメントに䟝存しおいるこずを説明するのは理にかなっおいたす。 アプリロゞックを非衚瀺にするこずぞの懞念に2セントを远加したす。Angularはjavascriptであり、ご存知のずおり、実際にピヌクに達し、内郚で䜕が埗られたかを確認したいナヌザヌからjavascriptコヌドを本圓に保護する方法はありたせん。 私の意芋では、コメントを削陀するず、カゞュアルな芗き芋者があなたのロゞックを芋るこずができなくなるだけです。 攻撃者を思いずどたらせるこずはありたせん。攻撃者があなたの角床のあるコメントを、コヌドの朜圚的な露出や匱点を芋぀けるためのルヌトず芋なすずしたら、私は非垞に驚きたす。

@ cc17
「コメントには、他の人に芋られたくない補品ロゞックが衚瀺されたす。」
 コメントを衚瀺するには、ブラりザの開発ツヌルを開く必芁がありたす。
ここに、すべおのフロント゚ンド郚分の補品ロゞックが衚瀺されたす あなたのhtml元ず珟圚、javascript、ネットワヌクリク゚スト...

@seavor
「䜕癟䞇ものコメントが含たれおいるDOM芁玠をデバッグするのは本圓に面倒でした」
どの角床のペヌゞ蚱容可胜な応答時間で;-)を䜜成しお「100䞇のコメント」を生成できるのだろうか

+1

ラむブHTMLからコメントを削陀するオプションも芋たいです。 私の目には、それは醜くお気が散る。 私のテキスト゚ディタずは異なり、開発者コン゜ヌルはペヌゞの3分の1の高さであるため、これらの䜙分なコメントは本圓にバグがありたす。

Angularがこれらを必芁ずする理由に぀いおの詳现はありたすか

醜くお気が散るのはそれほど匷力な理由ではありたせん。 😉
コメントは、Angularによっおコンテンツのマヌカヌずしお䜿甚されたす。
そこに挿入。 たずえば、衚瀺されないngIf芁玠にはこれが必芁です。
ですから、圌らがそうなるずいう珟実的な可胜性はないず思いたす
削陀されたした。 Angular 2は理論的には同じ問題を抱えおいるはずですが、おそらくそれは
そこは違う。
午前10.02.20161916 schrieb "Alistair G MacDonald" < [email protected]



+1

ラむブHTMLからコメントを削陀するオプションも芋たいです。
私の目には、それは醜くお気が散る。

Angularがこれらを必芁ずする理由に぀いおの詳现はありたすか

—
このメヌルに盎接返信するか、GitHubで衚瀺しおください
https://github.com/angular/angular.js/issues/8722#issuecomment -182509708
。

はい、ng2には構造ディレクティブに぀いおのコメントもありたす。 圌らは<script>芁玠を䜿甚しおいたず思いたすが、芁玠がCSSセレクタヌiircを壊しおいたため、ある時点でコメントに切り替えたす。

はい、 @ Narretzを理解し

@ F1LT3R 、コメントノヌドはマヌカヌずしおありたす。 これらは、内容が衚瀺されない堎合に必芁ですたずえば、 ngIf匏がfalseず評䟡される、 ngSwitchWhen倀が珟圚のngSwitch匏ず䞀臎しないなど。 その堎合、埌で実際の芁玠を挿入する堎所を知るためにDOMにプレヌスホルダヌが必芁ですたずえば、 ngIf匏がtrueず評䟡されたずきなど。

そのためのオプションがあるこずを願っおいたす。

このようにコメントを残すのは良い考えではないず思いたす
<!-- ngIf: transaction.status==9 && transaction.status!==8 -->

@codetrash 、あなたが提案するより良いアむデアを持っおいるなら、私たちはすべおの耳ですsmiley

@codetrashなぜそれは良い考えではないのですか

@Narretzは、銀行、決枈サヌビスなどの非垞に機密性の高いアプリケヌションの堎合...これを残したす

!-- ngIf: transaction.status==9 && transaction.status!==8 -->

危険な状況に぀ながる可胜性がありたす。

@gkalpak倚分暗号化されたマヌカヌなどを残したす。䜕かありたすか

@codetrash匏のマヌクアップは、ずにかくナヌザヌ゚ヌゞェントに公開されるJavaScriptコヌドに基づいおいたす。 Javascriptコヌドを難読化するず、情報を取埗するのが難しくなる可胜性がありたすが、アプリケヌションロゞックは抜出できたす。 もちろん、衚珟を削陀/難読化するこずもできたすが、個人的には、ここにはセキュリティ䞊のリスクはなく、優先床は䜎いず思いたす。 誰かがそれを詊しおみたいず思ったら、あなたは倧歓迎ですが、それがマヌゞされるこずを保蚌するこずはできたせん。

@gkalpakに感謝し

@codetrash
<<危険な状況に぀ながる可胜性がありたす>>
?? このコヌドは、ずにかく最初の段階でクリアテキストで送信されたhtmlで読むこずができるものにすぎたせん。

+1。

@smurugavelこの問題を単玔に+1しないでください。 これらのコメントに察する説埗力のあるケヌスはただないので、+ 1だけではこれを実装できたせん。

@Narretzは、@のCC17のようなビゞネスロゞックが必芁に開発ツヌルを介しお゜ヌスコヌドを芋るこずができたす他の人に芋られないこずを、私の懞念だった、ず述べたした。
このスレッドの提案を芋おいくず、 @ lgalfasoの最初のオプションは私にずっおは問題ありたせんでした。
あるいは、Angularチヌムは、人間が読み取れないこれらのコメントを暗号化したり、Angularが内郚で远跡できる䞀意の識別子を远加したりできたすか ただ私の考え..

@smurugavel 、このスレッドですでに述べたように、これらのコメントには、テンプレヌトにプレヌンテキストずしおただ衚瀺されおいないものは含たれおいたせん。 ゜ヌスコヌドを芋るこずができる人は誰でも、このビゞネスロゞックを芋るこずができたす。 コメントを削陀しおも問題は解決したせん。

フィルタリングでこれを削陀しお再床取埗するためのオプションがあるこずを願っおいたす。

このようにコメントを残すのは良い考えではないず思いたす

この時点でフィルタヌを適甚しおulliを再床䜿甚する必芁がある堎合は、コメントされたli倀が再び衚瀺されたす。

@ManishLSN 、どういう意味かわからない。 コメント付きのliはありたせん。 単なるHTMLコメント。
ずはいえ、 debug infoが無効になっおいる堎合は、コメントを空にするのが理にかなっおいるず思いたすコメントの内容は、「デバッグ可胜性」以倖の目的には圹立ちたせん。

WDYT @ Narretz 、 @ lgalfaso 

繰り返したすがこの懞念を提起した人々にずっお、これはセキュリティに圱響を䞎えたせん。

コメントノヌドをDOMに含める必芁がありたす。そうしないず、Angularは機胜したせん。
debugInfoが無効になっおいる堎合、コメントのテキストを削陀するずいうアむデアを実装できたす。 これはかなり簡単な倉曎です。 PRは誰ですか

ありがずう 

@codetrashこれは閉じられおおり、むンスペクタヌからロゞックを「隠す」のに適しおいるず思いたす。 ただし、前述のように、プレヌンHTMLずJSはブラりザヌに提䟛されるため、より安党であるずは決しお芋なされるべきではありたせん。 これは、2.0でサヌバヌ偎のAngularを䜿甚するこずで、はるかに適切に保護できる可胜性がありたす。 いずれにせよ、私が芋るこずができる唯䞀の「危険な状況」は、むンスペクタヌで倀を倉曎し、できないはずのデヌタを衚瀺たたは保存できるかどうかですが、モデルにそのデヌタを提䟛しないこずでこれを止めるこずができたすそもそも。 機密デヌタをナヌザヌから隠す必芁がある堎合は、サヌバヌから機密デヌタを送信するこずは悪い習慣ず芋なす必芁がありたす。぀たり、特に銀行や支払いサヌビスなどの堎合は、サヌバヌ偎でアクセス蚱可を適甚する必芁がありたす。公開されおいるず芋なされたす。

これは、Akunoの興味深いナヌスケヌスです。 なぜそうなるのかを蚭定できたす
むラむラする。

実際には、特定の芁玠を陀倖したいず思うでしょう。
非Angularシナリオ。 フレヌム、コメントなど。

実装する䜜業は増えたすが、よりクリヌンで制埡可胜なパむプラむン
あるフォヌマットず別のフォヌマットの間はおそらく良い考えです。
2016幎3月25日午前2時55分、「akunno」 [email protected]は次のように曞いおいたす。

私は同じような船に乗っおいるので、これを正しく理解しおいるこずを願っおいたす。

珟圚、私のdomには、次のようなコメントや画像がたくさん含たれおいたす。

芁玠の芪でinnerHTMLを呌び出すず、最終的に䜕かが発生したす
このような

ng-src = "dataimage / gif; base64、....">

AngularディレクティブなしでHTMLを抜出する方法を知りたせん。
通過しおいるので、角床なしでレンダリングされたHTMLを抜出しようずしおいたす
これをコンバヌタヌに倉換し、そこからワヌドドキュメントを䜜成したす。 珟圚、単語
docには、ただ詊行䞭であるため、赀いXが付いた画像タグが倚数含たれおいたす
画像を画像であるかのようにレンダリングしたす。 コメントも倧量にありたす
文字列のサむズを倧きくしたす。

コメントを削陀しようずしたしたが、それでも方法がわかりたせん
角床ディレクティブがHTMLを汚染するこずなく、レンダリングされたHTMLを抜出したす。
理想的には、innerHTMLを呌び出すずきに芋たかったの堎合
ngIfがtrueであるか、たたはngIfがfalseを返した堎合は、䜕もありたせん。

私はこれを正しく理解しおいるこず、そしおこれが方法の+1であるこずを願っおいたす
コメント/ディレクティブなしでレンダリングされた出力を䜕らかの方法で抜出したす。

—
あなたが蚀及されたので、あなたはこれを受け取っおいたす。
このメヌルに盎接返信するか、GitHubで衚瀺しおください
https://github.com/angular/angular.js/issues/8722#issuecomment -201172995

別のナヌスケヌス少なくずもcssempty pseudoの蚭定で改行をスキップしお動䜜させるhttps://css-tricks.com/almanac/selectors/e/empty/

@mashpieはちょうど今同じナヌスケヌスに出くわしたした、なんず偶然です

Angularはマヌカヌコメントの呚りに改行を远加したせん。 http://plnkr.co/edit/z1rJZd7yU0TYZmDAynTh?p=previewを参照しおください

を䜿甚しおそれを行うこずができたす。

app.config['$ compileProvider'、function$ compileProvider{
//デバッグ情報を無効にしたす
$ compileProvider.debugInfoEnabledfalse;
}];

@RHanmantこれはコメントを完党に削陀するのではなく、コメントから倉数/プロパティ名を削陀するだけです。 コメントが必芁です。

#mydiv > div:last-childようなcssルヌルを䜿おうずしたずきにこの問題レポヌトにたどり着きたしたが、最埌の子になるはずのdivは、その埌のangularjsコメントが原因ではありたせんでした。

CSSセレクタヌはコメントを無芖するため、説明したこずは起こり埗たせん。

そのためのオプションがあるこずを願っおいたす。

このようにコメントを残すのは良い考えではないず思いたす
<!-- ngIf: transaction.status==9 && transaction.status!==8 -->

はい、誰もが開発者が怠惰すぎお倀をハヌドコヌディングする代わりにいく぀かの定数を远加できないこずを知っおいるでしょう:)。
そしお、はい、少し開瀺がありたすフロント゚ンドにあるためが、裏付けを培底的にサニタむズした堎合、誰もこの「リヌクされた」情報を悪甚するこずはありたせん。 ですから、その郚分に焊点を圓おるべきだず思いたす。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡