aboutsummaryrefslogtreecommitdiffstats
path: root/docs/content/guide/dev_guide.mvc.understanding_model.ngdoc
diff options
context:
space:
mode:
authorIgor Minar2011-06-15 22:31:40 -0700
committerIgor Minar2011-06-15 22:31:40 -0700
commitb842642b574a2b95c53b791308ed1bf8ff9d304d (patch)
treefb26431c5372be74de2105df77e94dea4f198489 /docs/content/guide/dev_guide.mvc.understanding_model.ngdoc
parentd428c9910e66246c2af46602499acaeaf187d75b (diff)
downloadangular.js-b842642b574a2b95c53b791308ed1bf8ff9d304d.tar.bz2
docs - stripping extra new lines
Diffstat (limited to 'docs/content/guide/dev_guide.mvc.understanding_model.ngdoc')
-rw-r--r--docs/content/guide/dev_guide.mvc.understanding_model.ngdoc24
1 files changed, 0 insertions, 24 deletions
diff --git a/docs/content/guide/dev_guide.mvc.understanding_model.ngdoc b/docs/content/guide/dev_guide.mvc.understanding_model.ngdoc
index 15d8bcb2..4efb03ca 100644
--- a/docs/content/guide/dev_guide.mvc.understanding_model.ngdoc
+++ b/docs/content/guide/dev_guide.mvc.understanding_model.ngdoc
@@ -3,94 +3,70 @@
@name Developer Guide: About MVC in Angular: Understanding the Model Component
@description
-
Depending on the context of the discussion in angular documentation, the term _model_ can refer to
either a single object representing one entity (for example, a model called "phones" with its value
being an array of phones) or the entire data model for the application (all entities).
-
In angular, a model is any data that is reachable as a property of an angular {@link
dev_guide.scopes Scope} object. The name of the property is the model identifier and the value is
any JavaScript object (including arrays and primitives).
-
The only requirement for a JavaScript object to be a model in angular is that the object must be
referenced by an angular scope as a property of that scope object. This property reference can be
created explicitly or implicitly.
-
You can create models by explicitly creating scope properties referencing JavaScript objects in the
following ways:
-
* Make a direct property assignment to the scope object in JavaScript code; this most commonly
occurs in controllers:
-
function MyCtrl() {
// create property 'foo' on the MyCtrl's scope
// and assign it an initial value 'bar'
this.foo = 'bar';
}
-
* Use an {@link dev_guide.expressions angular expression} with an assignment operator in templates:
-
<button ng:click="{{foos='ball'}}">Click me</button>
-
* Use {@link api/angular.directive.ng:init ng:init directive} in templates (for toy/example apps
only, not recommended for real applications):
-
<body ng:init=" foo = 'bar' ">
-
Angular creates models implicitly (by creating a scope property and assigning it a suitable value)
when processing the following template constructs:
-
* Form input, select, and textarea elements:
-
<input name="query" value="fluffy cloud">
The code above creates a model called "query" on the current scope with the value set to "fluffy
cloud".
-
* An iterator declaration in {@link api/angular.widget.@ng:repeat ng:repeater}:
-
<p ng:repeat="phone in phones"></p>
-
The code above creates one child scope for each item in the "phones" array and creates a "phone"
object (model) on each of these scopes with its value set to the value of "phone" in the array.
-
In angular, a JavaScript object stops being a model when:
-
* No angular scope contains a property that references the object.
-
* All angular scopes that contain a property referencing the object become stale and eligible for
garbage collection.
-
The following illustration shows a simple data model created implicitly from a simple template:
-
<img src="img/guide/about_model_final.png">
-
-
## Related Topics
-
* {@link dev_guide.mvc About MVC in Angular}
* {@link dev_guide.mvc.understanding_controller Understanding the Controller Component}
* {@link dev_guide.mvc.understanding_view Understanding the View Component}