angularJSでドルのメソッドと変数を使用する理由が、消化が行われているときにこれらの値をチェックしないようにangularJSに指示することであるかどうか、誰かが知っていますか?したがって、angularが$scope.$value
and $scope.value
に出くわすと、変数名の前にドル記号が付いているため、前者のチェックが回避されますか?
$scope
ありますが、ディレクティブにはありscope
ます。WTF?
angularJSでドルのメソッドと変数を使用する理由が、消化が行われているときにこれらの値をチェックしないようにangularJSに指示することであるかどうか、誰かが知っていますか?したがって、angularが$scope.$value
and $scope.value
に出くわすと、変数名の前にドル記号が付いているため、前者のチェックが回避されますか?
$scope
ありますが、ディレクティブにはありscope
ます。WTF?
回答:
Angularがドル記号で始まる変数を無視する場合があります。
{{ }}
ディレクティブを使用すると、angularはネストされた $
変数を表示しません。たとえば、これはvisible
プロパティのみを表示します。
<div ng-init="n = { visible: 'foo', $ignore: 'bar' };">{{ n }}</div>
さらに、スコープオブジェクトに明示的なウォッチャーを追加する場合、このオブジェクトの先頭にドル記号があるプロパティを変更しても、ウォッチャーはトリガーされません。この更新されたフィドルを参照してください。
angular.equals()
プレフィックスが付いたキーを無視します$
。
これは、以下のスニペットhttp://docs.angularjs.org/tutorial/step_05からの単なる命名規則です。
'$'プレフィックスの命名規則
独自のサービスを作成できます。実際には、手順11で正確に作成します。命名規則として、angularの組み込みサービス、Scopeメソッド、およびその他のいくつかのAngular APIには '$'プレフィックスがあります。名前の前に。サービスとモデルに名前を付けるときは、可能性のある名前の衝突を避けるために、「$」プレフィックスを使用しないでください。
http://docs.angularjs.org/guide/concepts#angular_namespace
Angular名前空間
偶発的な名前の衝突を防ぐために、Angularは$と衝突する可能性のあるオブジェクトの名前に接頭辞を付けます。誤ってAngularコードと衝突する可能性があるため、コードで$プレフィックスを使用しないでください。
$scope
コントローラー内にあるのにscope
、ディレクティブ内にあるのはなぜですか?--- [1] docs.angularjs.org/guide/directive
$
接頭辞は、角度のコアに属する変数、パラメータ、プロパティ、または方法を意味します。
フレームワークの内部で発生しているが、実際にはAPIの一部ではないオブジェクトのプロパティは、プライベートメソッドまたはプロパティを示すために、$
またはそれから始まる場合があります。これは、プレフィックスが他のライブラリでよく使用される方法と同じです。$$
_
フレームワーク自体に特別な意味を持たせることはできますが、ランタイムによるコードの解釈方法には影響を与えません。基本的に、「これをいじってはいけない」という命名規則です。
$$__$_$
–それはインタプリタにとって特別な意味のない単なる識別子です。
完全には定かではありませんが、AngularJSの内部では、ダイジェスト中にこれらの$で始まる変数を操作することに依存していると思います。これらの変数をチェックすると、ダイジェストの各サイクル中に常に変化する可能性があるため、ダイジェストが安定しないことを意味します。
それについて私を引用しないでください。:)
ドル($)記号は、特定のディレクティブで要素が反復(または解釈)されるのを防ぎます。たとえば、$で始まるプロパティは、forループのif句のng-repeat
ために使用されません。
if(collection.hasOwnProperty(key) && key.charAt(0) != '$')
誰かがangular githubページのこのトピックについて問題を出しました
方法にshallowCopy
で始まる特性$$ためのスキップされる場合句反復一方properies。
if (!(key.charAt(0) === '$' && key.charAt(1) === '$')) {
@MarcoSがhttps://thinkster.io/a-better-way-to-learn-angularjs/scope-vs-scopeへのリンクを提供しました $ scopeとスコープの違いを説明する。他の回答の情報に追加して、これは便利だと思いました。
角度指令にはリンクとコントローラーがあります。リンクは、パラメーター、スコープ、要素、属性オブジェクトの固定セットを持つ標準関数です。
コントローラの引数はAngularインジェクタによって管理され、順序に依存しません。インジェクターは、$で始まるパラメーターを探すことで、渡すオブジェクトを解決します。
https://thinkster.io/a-better-way-to-learn-angularjs/scope-vs-scopeの作成者は、それをよりよく説明しています。
変数ではなく、コントローラーが受け取るパラメーターに大きな違いがあります。スコープパラメータは$ scopeのパラメータとは完全に異なります。
詳細については、次の役立つ投稿をご覧ください。http://www.thinkster.io/angularjs/aw9kWmdnik/angularjs-scope-vs-scope