| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
BREAKING CHANGE:
It is considered an error to have two items produce
the same track by key. (This was tolerated before.)
|
|
|
|
Rename unused arrayLength variable to arrayBound and use it inside loop
|
|
Off-by-one error.
|
|
Preserve the order of the elements that are not part of a case nor default in
a ng-switch directive
BREAKING CHANGE: elements not in the ng-switch were rendered after the
ng-switch elements. Now they are rendered in-place.
Ng-switch directives should be updated with non ng-switch elements
in render-order. e.g.
The following was previously rendered with <li>1</li> after "2":
<ul ng-switch="select">
<li>1</li>
<li ng-switch-when="option">2</li>
</ul>
To keep the old behaviour, say:
<ul ng-switch="select">
<li ng-switch-when="1">2</li>
<li>1</li>
</ul>
Closes #1074
|
|
|
|
|
|
|
|
ngClassWatchAction, when called as a $watch function, gets the wrong old
value after it has been invoked previously due to observation of the
interpolated class attribute. As a result it doesn't remove classes
properly. Keeping track of the old value manually seems to fix this.
Closes #1637
|
|
The change to prevent <span> elements being wrapped around empty text nodes caused these empty text nodes to have scopes and controllers attached, through jqLite.data() calls, which led to memory leaks and errors in IE8.
Now we exclude all but document nodes and elements from having jqLite.data() set both in the compiler and in ng-view.
Fixes: #1968 and #1876
|
|
Closes #1074
|
|
Apparently there is a really weird bug in IE6-8 that causes anchor textContent
to be reset with href content when both contain @ symbol.
Inserting a bogus comment node into all anchor elements in IE works around this
browser bug.
I'm fixing the issue via directive because that way we'll fix it for jQuery as
well.
I fixed an e2e test too because it was incorrect.
Closes #1949
|
|
add a $scope to the ngSwitch's controller to fool the controller
BC (backwards compatibility) module used by DFA.
|
|
|
|
|
|
|
|
Closes# 1797 add ng-open attribute
|
|
The leak can occur when ngSwich is used inside ngRepeat or any other
directive which is destroyed while its transcluded content (which
includes ngSwitch) is not attached to the DOM.
Refactor ngSwitch to use controller instead of storing data on compile
node. This means that we don't need to clean up the jq data cache.
Controller reference is released when the linking fn is released.
Closes #1621
|
|
If the $last property is calculated from the original collectionLength
on an object and properties starting with $ were filtered out, then $last
is never applied and $middle is applied erroniously.
Closes #1789
|
|
This reverts commit c81d8176cc55cd15acae05259ead73f90a01f0b7.
This commit causes several issues (#1651, #1674, #1662) and doesn't even
contain a test that proves that anything on Opera got actually fixed.
If the original Opera resurfaces, we'll fix it properly.
|
|
Form documentation fixes:
- Fix broken form example in docs
- A few small other corrections in form docs.
|
|
New directives for binding to keydown and keyup events.
Closes #1035
|
|
Closes #1715
|
|
Closes #1553
|
|
We need to watch $index in addition to cssClasses because only then
we can correctly respond to shrinking or reordered repeaters.
Closes #1076
|
|
I'm reverting changes that were originally done to ngRepeat to fix #933,
because these are now not necessary after the previous changes to keep
ngModel always synced with the DOM.
|
|
In cases when we reuse elements in a repeater but associate
them with a new scope (see #933 - repeating over array of
primitives) it's possible for the internal ngModel state and
the scope state to get out of sync. This change ensure that
the two are always sync-ed up even in cases where we
reassociate an element with a different (but similar) scope.
In the case of repeating over array of primitives it's still
possible to run into issue if we iterate over primitives and
use form controls or similar widgets without ngModel - oh well,
we'd likely need a special repeater for primitives to deal
with this properly, even then there might be cornercases.
Closes #933
|
|
I'm keeping this in for future reference. The issue with this solution
is that if we shift() the first item in the array, the whole repeater
DOM will be rebuilt from scratch, we need to do better than that.
|
|
Retting a form to pristine state will cause all of the nested
form and form controls to be recursively reset as well.
Closes #856
|
|
Closes #1202
|
|
|
|
|
|
Bug caused by the use of the `||` operator to replace all non-truthy
values with an empty string. Changed to replace only `undefined` values.
Closes #1401
|
|
we handle the navigation by ourselves, so we need to prevent the default action.
Opera ignores event.preventDefault() call so we must return false.
|
|
|
|
This will allow us to see function names in Batarang and debugger.
Closes #1119
|
|
Current implementation of ngSrc may lead to empty src attribute when page is loading.
For example:
<img ng-src="{{image.url}}">
can be temporarily rendered as
<img src="">
before the image resource is loaded.
Some browser emits a request to the current page when seeing <img src=""> (Firefox13 and IE8 will, Chromium20 won't), which leads to performance problems.
|
|
|
|
Closes #1016
|
|
closes #933
|
|
this was accidentaly merged in. the commit is not ready yet
and we don't have CLA signature.
This reverts commit 98d489712eff7559bce87ae53bd242112a875c1a.
|
|
|
|
|
|
It seems that docs for these directive were previously hidden by accident
|
|
Closes #1134
|
|
previously we expected to find option elements only within select element and if
that was not the case we throw an error. This made it impossible to include datalist
element with nested option elements in the template.
Closes #1165
|
|
this fix ensures that we prevent the default action on form submission
(full page reload) even in cases when the form is being destroyed as
a result of the submit event handler (e.g. when route change is
triggered).
The fix is more complicated than I'd like it to be mainly because
we need to ensure that we don't create circular references between
js closures and dom elements via DOM event handlers that would then
result in a memory leak.
Also the differences between IE8, IE9 and normal browsers make testing
this ugly.
Closes #1238
|