| Age | Commit message (Collapse) | Author |
|
The example about transclusion and scopes worked only because the order of `scope` and `element`
arguments is wrong, which means that the `name' property of the scope is not really being updated.
To really work, the directive has to define its own scope, either a new child scope or, as is more
common with transclusion, an isolated scope.
Closes #4774
|
|
Closes #4748
|
|
Broken - $scope.spicy = 'very';
Works - $scope.spice = 'very';
Closes #4752
|
|
Inserted a couple of line breaks to increase readability.
Closes #4756
|
|
|
|
BREAKING CHANGE:
This commit introduces the notion of "private" properties (properties
whose names begin and/or end with an underscore) on the scope chain.
These properties will not be available to Angular expressions (i.e. {{
}} interpolation in templates and strings passed to `$parse`) They are
freely available to JavaScript code (as before).
Motivation
----------
Angular expressions execute in a limited context. They do not have
direct access to the global scope, Window, Document or the Function
constructor. However, they have direct access to names/properties on
the scope chain. It has been a long standing best practice to keep
sensitive APIs outside of the scope chain (in a closure or your
controller.) That's easier said that done for two reasons: (1)
JavaScript does not have a notion of private properties so if you need
someone on the scope chain for JavaScript use, you also expose it to
Angular expressions, and (2) the new "controller as" syntax that's now
in increased usage exposes the entire controller on the scope chain
greatly increaing the exposed surface. Though Angular expressions are
written and controlled by the developer, they (1) typically deal with
user input and (2) don't get the kind of test coverage that JavaScript
code would. This commit provides a way, via a naming convention, to
allow publishing/restricting properties from controllers/scopes to
Angular expressions enabling one to only expose those properties that
are actually needed by the expressions.
|
|
|
|
Closes #4705
|
|
Closes #4714
|
|
|
|
Closes #4700
|
|
Closes #4690
|
|
Add the word "to" to improve grammar.
Closes #4698
|
|
If you have zoomed into the page in your browser then the screen coordinate system no longer
matches the page coordinate system. To ensure that dragged elements work correctly when zoomed
we should use pageX/pageY rather than screenX/screenY.
Closes #4687
|
|
Nested bullet points don't appear very nicely so resorted to nested
heading for the Learning Resources and in particular Books sections.
Closes #4677
|
|
|
|
Closes #4674
|
|
Closes #4536
|
|
Add note that `input()` fn matches ng-model instead of HTML name attribute.
About five users on forums were snagged by this assumption:
http://docs.angularjs.org/guide/dev_guide.e2e-testing#comment-898079915
Closes #4655
|
|
The escaping of the colon in the example CSS is incorrect.
Replace `ng\\:view {` with `ng\:view {`
Closes #4570
|
|
Closes #4601
|
|
|
|
Closes #4503
|
|
It is instructive to give literal examples that reflect common (my) experience of the problem. :)
|
|
Closes #4668
|
|
Closes #4667
|
|
Add a note to warn people starting new projects about Protractor replacing the
current ngScenario way of doing E2E testing.
Closes #4644
|
|
Closes #4648
|
|
Closes #4647
|
|
Closes #4639
|
|
The BabyCtrl was a bit confusing and GrandChildCtrl seems to make more sense
with the whole "scope inheritance" concept.
Closes #4634
|
|
Closes #4633
|
|
|
|
Closes #4615
|
|
Closes #4578
|
|
Closes #4552
|
|
The non-global controller test throws an error because the test does not
know about the module and so can not find the controller. This change
tells the test about the module so the test can find the controller.
Closes #4489
|
|
Closes #4477
|
|
Change landing page to include a set of curated links with subject
headings as a guide through Angular's docs and other resources.
Closes #4470
|
|
The removed block is repeated from the unit-testing guide and appears
in an awkward place in this text.
Closes #4456
|
|
The example that demonstrates how to parse expressions can fail if you
pass in the same expression twice. By using "track by $index" we can
fix this.
Closes #4472
|
|
Closes #4449
|
|
Closes #4429
|
|
Closes #4418
|
|
Closes #4410
|
|
|
|
|
|
This also contains some whitespace corrections by my editor.
|
|
|
|
Closes #4405
|