2016-03-16 4 views
9

私は角度Jを傾けています。私は多くの著者がng-initを使い、多くの著者がdata-ng-initを使っていることがわかりました。私は差を検索しようとしましたが、適切な答えを得ることができませんでした。誰かがそれらの違いを知っている場合は、あなたの答えを共有してください。ng-initとdata-ng-initの角Jsの差

ありがとうございます!

+2

「ng-appとdata-ng-appの違いは何ですか?」(http://stackoverflow.com/questions/16184428/) app-and-data-ng-appの違い) – Phil

+2

すべての角度属性ディレクティブは 'ng-thing'または' data-ng-thing'として記述することができます。どちらも100%相当です。 – GregL

+0

本当にありがとうございました:) –

答えて

6

data-ng-initはHTML5の検証コードです.ng-initはHTML5に関して有効なコードではありません。これはすべての角度指令に適用されます。

+1

ありがとうございました:) –

9

興味深い質問です。 W3schoolsから:

あなたのページ HTMLを有効にしたい場合は、代わりにng-の、データ-ng-使用することができます。

HTMLバリデータはng-initのようなプロパティでエラーがスローされますが、私たちはdata-(例えば:data-ng-init)と接頭辞を与える場合は、HTMLバリデータはそれを受け入れ、それが有効になります。

あなたはここで詳細を読むことができます:https://www.w3.org/TR/2011/WD-html5-20110525/elements.html#embedding-custom-non-visible-data-with-the-data-attributes

注:data-*属性はHTMLを拡張する方法です。

+0

ありがとうございました:) –

1

理想的には、2つの機能の点で違いはありませんが、検証のみがあります。

Visual Studioのようなコードエディタでは、HTML5の開始後、無効なものとして 'ng-'が強調表示されます。しかし、実際には有効です。そのため、AngularJSの属性に 'data-ng- *'という接頭辞を付けることで、その属性が有効であることをコードエディタに理解させる方法があります。

プレフィックスをHTML5コードエディタで使用すると、属性に下線はなく、有効なものとして扱われます。

これは 'data- *'接頭辞の本来の目的でした。

+0

ありがとうございました:) –

0

HTML5バリデータはng-appでエラーを送出します。私たちがプレフィックスとしてデータを使用すると、単にエラーを無視します。