Angular Document Discussionのコンテキストでは、「モデル」という用語は、エンティティ(たとえば、値が電話配列である「電話」と呼ばれるモデル)を表す単一のオブジェクトに適用できます。
Angularでは、モデルは任意のデータであり、モデルはAngularのスコープオブジェクトのプロパティを介して取得できます。プロパティの名前はモデルの識別子であり、値は任意のJavaScriptオブジェクト(配列と生データを含む)にすることができます。
JavaScriptがモデルになる唯一の条件は、オブジェクトが角度スコープによってスコープオブジェクトの属性として参照されなければならないことです。属性の参照関係は、明示的または暗黙的に作成できます。
スコーププロパティを次の方法で明示的に作成し、JavaScriptオブジェクトを関連付けてモデルを作成できます。
JavaScriptコードでは、スコープオブジェクトに割り当てられた属性が直接割り当てられます。これは通常、コントローラーで送信されます。
function myctrl($ scope){// myctrlのscopeでプロパティ 'foo'を作成し、初期値 'bar' $ scope.foo = 'bar'を割り当てます。 }テンプレートの角度式(http://www.cnblogs.com/lclao/archive/2012/09/16/2687162.html)で、課題演算子を使用します。
<button ng-click = "{{foos = 'ball'}}">私をクリックします</button>
テンプレートでnginitディレクティブ(http://docs.angularjs.org/api/ng.directive:nginit)を使用してください(たとえば、実際のアプリケーションでは推奨されません)
<body ng-init = "foo = 'bar'">
Angularは、次のテンプレート構造で暗黙的にモデルを作成します。
入力、Select、Textarea、およびフォームのその他のフォーム要素:
<入力ng-model = "query" value = "Fluffy Cloud">
上記のコードは、現在のスコープで「クエリ」と呼ばれるモデルを作成し、入力の値にバインドされ、「Fluffy Cloud」に初期化されます。
ngrepeaterでイテレーターを宣言します
<p ng-repeat = "電話の電話"> </p>
上記のコードは、各電話配列の各要素の子スコープを作成し、対応する子スコープに「電話」モデルを作成し、配列に対応する値を割り当てます。
Angularでは、次の状況が発生した場合、JavaScriptオブジェクトはもはやモデルではありません。
角度スコープが含まれていない場合、オブジェクトに関連付けられた属性が含まれます。
オブジェクトに関連付けられた属性を含むすべての角度スコープは古くなり、ごみ収集に適しています。
以下の図は、単純なテンプレートでの単純なデータモデルの暗黙的な作成を示しています。
上記は、Angularjsがモデルコンポーネントを理解していることに関する情報であり、後で追加し続けます。このサイトへのご支援ありがとうございます!