2016-03-28 5 views
2

は、私はちょうど私たちのコードベースあなたのcssセレクタにng-bindingを含むことは悪い習慣ですか?

li.ng-binding span { 
    font-size: 13px; 
    font-family: Arial, Helvetica, sans-serif; 
    font-weight: bold; 
} 

にコードのこの作品に出会っと、このセレクタは、それがために、セレクタで.ng-binding存在のに適用するためのものだったのli要素の1つに適用されますdoesntの。このコードは動作しますが、CSSセレクタにはng-bindingが含まれていませんか?

+0

あなたが正しいのは、(このアプローチに間違っている) 'ng-binding'は、ドキュメントやスタイルシート(またはいずれかを閲覧/管理する人物)にとって意味がないからです。これは単に、コンテキストに固有の値を持たず、ウェブクライアントの他の層(スクリプトなど)に知らせるためのものである、特定の要素に対して 'ng-binding'クラスが設定されていることを示します。あなたのCSSでこのような任意のセレクタを使用することを避けるだけでなく、文書/ HTML内でそれらを避けることも可能です。 – Anthony

答えて

3

私はあなたのごちそうに同意します。 CSSはまた、文書のプレゼンテーション(separation of structure)から文書コンテンツの分離を可能にするために主に設計された角度は、本質的に仲介for binding to the attributes of HTML DOM elementsあるので、標準(ngStyle等)ディレクティブまたはカスタムディレクティブshould be used to help style DOM elements

れます。いくつかの初期調査の後に、Angularによって内部的に使用されるclass = "ng-binding"があります。私はこのクラスを使用することはありません

element.addClass('ng-binding').data('$binding', attr.ngBindHtml); 

:ngBindソースを調べるクラスを追加し、これへの参照がある角度< 1.3で.data:

との結合を関連付け数行があります。

+1

私も同意しますが、この種の違反は、ブートストラップなどの人気のあるライブラリの多くを含むほとんどのJavaScriptプラットフォームで広範囲に発生することが指摘されるべきです。それは明らかではないかもしれませんが、特定の要素に 'bootstrap-sort-button'のようなクラスがあり、そのクラスをセレクタとしてCSSで使用することが、OPが求めているのとまったく同じ悪い振る舞いを助長することを要求します。これは私がこの行動が許されると言っているのではなく、あなたの答えがこの行動を見過ごしているというのではなく、この問題に関しては「もっと大きなボートが必要です」と言っています。 – Anthony

+1

ありがとう@ファーガス、それは私の質問に答える! –

関連する問題