25

AngularJS のビデオで、常に . (ドット) モデルで。

さて、私はこれに従おうとしています

   var item = {}
   item.title = "Easy Access to support";
   item.available = true;
   item.price = 31.67;

だから、これは私の見解ではうまく機能します

  {{ item.title }}
  {{ item.available }}

ドットを使っているのでこれでいいと思います。

しかし、モデルの一部とは見なさないプロパティがいくつかありますが、間違っている可能性があります。たとえば、ng-disable を使用してボタンを有効または無効にするために使用するプロパティがあり、ドット形式を使用してこれを入力しました。その基本的にはそのように入力されました

 $scope.disableButton = true;

そして、私はそれを次のように使用します

 ng-disable="disableButton"......

モデルのこの部分を「アイテム」にするべきですか?または、ドットを使用してこのプロパティを保持できるように、別のjsオブジェクトを作成しますか?

これが受け入れられるかどうか、または.dotを使用してすべて(これらの単純なプロパティでさえ)を行う必要があるかどうかは誰にもわかりますか??

ありがとう

4

2 に答える 2

48

「モデルには常にドットが必要です」とは、ngModel. このディレクティブは双方向バインディングを行います。プリミティブ (あなたの場合は Boolean など) に双方向でバインドする場合、セッターはそれが定義されているスコープではなく、現在のスコープに設定します。多くの子スコープとのインターフェース。などの他のディレクティブは参照しませんngDisableこの特定の問題の詳細については、この説明を参照してください。

サンプル シナリオ: 親スコープに$scope.foo = "bar"、子スコープに<input type="text" data-ng-model="foo">. 最初は表示されますbarが、ユーザーが値を変更すると、子スコープfooに が作成され、バインディングがその値を読み書きします。親の遺志は残ります。それがうまく要約されていることを願っています。foobar

そのため、ngModel目的のために、このようなバインドの問題を回避するためにオブジェクトを作成する必要がある場合がありますが、他のディレクティブについては、通常の論理的なグループ化が必要です。

于 2013-08-08T14:20:34.593 に答える