aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2014-03-19fix($rootScope): ng-repeat can't handle NaN values. #4605Sekib Omazic
$watchCollection checks if oldValue !== newValue which does not work for NaN. This was causing infinite digest errors, since comparing NaN to NaN in $watchCollection would always return false, indicating that a change was occuring on each loop. This fix adds a simple check to see if the current value and previous value are both NaN, and if so, does not count it as a change. Closes #4605
2014-03-18test(ngMock): workaround issue with negative timestampsBrett Porter
In some specific timezones and operating systems, it seems that getTimezoneOffset() can return an incorrect value for negative timestamps, as described in #5017. While this isn't something easily fixed in the mock code, the tests can avoid that particular timeframe by using a positive timestamp. Closes #5017 Closes #6730
2014-03-18fix(select): avoid checking option element selected properties in renderJeff Balboni
In Firefox, hovering over an option in an open select menu updates the selected property of option elements. This means that when a render is triggered by the digest cycle, and the list of options is being rendered, the selected properties are reset to the values from the model and the option hovered over changes. This fix changes the code to only use DOM elements' selected properties in a comparison when a change event has been fired. Otherwise, the internal new and existing option arrays are used. Closes #2448 Closes #5994
2014-03-18fix(orderBy): support string predicates containing non-ident charactersCaitlin Potter
The orderBy filter now allows string predicates passed to the orderBy filter to make use property name predicates containing non-ident strings, such as spaces or percent signs, or non-latin characters. This behaviour requires the predicate string to be double-quoted. In markup, this might look like so: ```html <div ng-repeat="item in items | orderBy:'\"Tip %\"'"> ... </div> ``` Or in JS: ```js var sorted = $filter('orderBy')(array, ['"Tip %"', '-"Subtotal $"'], false); ``` Closes #6143 Closes #6144
2014-03-18fix(ngCookie): convert non-string values to stringCaitlin Potter
Previously, non-string values stored in $cookies would be removed, without warning the user, and causing difficulty debugging. Now, the value is converted to string before being stored, and the value is not dropped. Serialization may be customized using the toString() method of an object's prototype. Closes #6151 Closes #6220
2014-03-18fix(ngTouch): update workaround for desktop Webkit quirkChris Constantin
Fix click busting of input click triggered by a label click quickly following a touch event on a different element, in desktop and mobile WebKit To reproduce the issue fixed by this commit set up a page with - an element with ng-click - a radio button (with hg-model) and associated label In a quick sequence tap on the element and then on the label. The radio button will not be checked, unless PREVENT_DURATION has passed Closes #6302
2014-03-18fix($httpBackend): don't error when JSONP callback called with no parameterCaitlin Potter
This change brings Angular's JSONP behaviour closer in line with jQuery's. It will no longer treat a callback called with no data as an error, and will no longer support IE8 via the onreadystatechanged event. BREAKING CHANGE: Previously, the JSONP backend code would support IE8 by relying on the readystatechanged events. This is no longer the case, as these events do not provide adequate useful information for deeming whether or not a response is an error. Previously, a JSONP response which did not pass data into the callback would be given a status of -2, and treated as an error. Now, this situation will instead be given a status of 200, despite the lack of data. This is useful for interaction with certain APIs. Previously, the onload and onerror callbacks were added to the JSONP script tag. These have been replaced with jQuery events, in order to gain access to the event object. This means that it is now difficult to test if the callbacks are registered or not. This is possible with jQuery, using the $.data("events") method, however it is currently impossible with jqLite. This is not expected to break applications. Closes #4987 Closes #6735
2014-03-18fix($$RAFProvider): check for webkitCancelRequestAnimationFrameTraxmaxx
Android 4.3 only supports webkitCancelRequestAnimationFrame. Closes #6526
2014-03-19docs(tutorial/step_05): fix services linkfrandroid
2014-03-18docs(tutorial/step_05): removed stray "a"frandroid
2014-03-18style(ngMocks): remove wsIgor Minar
2014-03-18feat(ngMock.$httpBackend): added support for function as URL matcherCaio Cunha
It's now possible to pass a function to match the URL in $httpBackend mocked expectations. This gives a more sophisticate control over the URL matching without requiring complex RegExp mantainance or the workaround of creating an object with a `test` function in order to mimic RegExp interface. This approach was suggested in [this thread](https://groups.google.com/d/msg/angular/3QsCUEvvxlM/Q4C4ZIqNIuEJ) Closes #4580
2014-03-18feat($compile): add support for $observer deregistrationCaio Cunha
In order to make the behavior compatible with $rootScope.$watch and $rootScope.$on methods, and make it possible to deregister an attribute observer, Attributes.$observe method now returns a deregistration function instead of the observer itself. BREAKING CHANGE: calling attr.$observe no longer returns the observer function, but a deregistration function instead. To migrate the code follow the example below: Before: ``` directive('directiveName', function() { return { link: function(scope, elm, attr) { var observer = attr.$observe('someAttr', function(value) { console.log(value); }); } }; }); ``` After: ``` directive('directiveName', function() { return { link: function(scope, elm, attr) { var observer = function(value) { console.log(value); }; attr.$observe('someAttr', observer); } }; }); ``` Closes #5609
2014-03-18fix(Scope): $watchCollection should call listener with oldValueIgor Minar
Originally we destroyed the oldValue by incrementaly copying over portions of the newValue into the oldValue during dirty-checking, this resulted in oldValue to be equal to newValue by the time we called the watchCollection listener. The fix creates a copy of the newValue each time a change is detected and then uses that copy *the next time* a change is detected. To make `$watchCollection` behave the same way as `$watch`, during the first iteration the listener is called with newValue and oldValue being identical. Since many of the corner-cases are already covered by existing tests, I refactored the test logging to include oldValue and made the tests more readable. Closes #2621 Closes #5661 Closes #5688 Closes #6736
2014-03-18chore(log): add `log.empty()` method to the testing loggerIgor Minar
`log.empty()` is the same as `log.reset()`, except thati `empty()` also returns the current array with messages instead of: ``` // do work expect(log).toEqual(['bar']); log.reset(); ``` do: ``` // do work expect(log.empty()).toEqual(['bar']); ```
2014-03-18fix(angular.bootstrap): only allow angular to load onceSiddique Hameed
This is hard to test as a unit-test, since it involves the actual loading of angular, but it turns out that it is easy to test using a protractor e2e test. Closes #5863 Closes #5587
2014-03-18chore(utils): fix version number processingPeter Bacon Darwin
The changes to version-info meant that the version being injected into the code at build time was missing the "dot" (patch) version and the release code-name.
2014-03-18chore(version-info): previousVersions should not return `undefined`Peter Bacon Darwin
Closes #6702
2014-03-18docs(guide/concepts): move ng-app into example textPeter Bacon Darwin
Closes #6639
2014-03-18chore(package.json): update dgeni-packages dependencyPeter Bacon Darwin
2014-03-17style($templateCache): remove trailing whitespaceCaitlin Potter
This was introduced by 2ca6d650e8a13cee28f11c38622cab231787325f, somewhat inexplicably as I had run grunt ci-checks locally. But regardless, this should fix this up.
2014-03-17docs($templateCache): use GFM example format rather than <pre> tagsJesse Palmer
Updated example formatting. Closes #6068
2014-03-17docs(loader): add annotations to exampleEdward Brey
2014-03-17docs($cookies): cookies serializer only supports stringsTyler Kellogg
Closes #6705
2014-03-17docs(errors/$compile/nonassing): update nonassign.ngdocposhest
It might seem obvious that if you don't supply "bind" attribute in this case, you'll get an error, but I feel this is worth adding to the doc. Closes #6725
2014-03-17docs(css): RegExp doesn't have .type-hint-regexp classSekib Omazic
type-hint-regexp gets a nice color closes #6596
2014-03-17docs(module): add link to mentioned resourceGias Kay Lee
Closes #6628
2014-03-17docs(css): Fix word breaks issue in <pre>Gias Kay Lee
Closes #6586
2014-03-17docs(migration): note that services can now return functionswbyoko
This change mostly effects preprocessed javascript.
2014-03-17chore(formatting): removed unnecessary white spacesTakashi Nakagawa
2014-03-17docs(ngView): remove global controller definitionsunicodesnowman
instead use angular modules also fix formatting
2014-03-17docs(tutorial/step_02): add experiment to update controller testNeil Johnston
Add an experiment to update the controller unit test after modifying it with the new model property.
2014-03-17docs(booleanAttrs): fix typoSekib Omazic
2014-03-17docs(tutorial/step_12): link to API docsJan Hancic
2014-03-17chore(angularjs.org/publish.sh): align release script with new websitePeter Bacon Darwin
Closes #6690
2014-03-17docs(ngForm): remove duplicate @param annotationDavid Rogers
When the example for `ngAnimate` was added in commit:3344396, the `@param name` annotation was unintentionally duplicated. Remove this duplicate. Closes #6720
2014-03-17fix(jqLite): traverse `host` property for DocumentFragment in inheritedData()Caitlin Potter
If dealing with a document fragment node with a host element, and no parent, use the host element as the parent. This enables directives within a Shadow DOM or polyfilled Shadow DOM to lookup parent controllers. Closes #6637
2014-03-17docs(ngInclude): make the quote type explicitMark Jones
2014-03-17docs($http): update shortcut method descriptionlinclark
Update docs to reflect that $http no longer requires passing in an HTTP method, as changed in #6401.
2014-03-17docs(ngRoute): remove global controller syntax in the examplebradwheel
2014-03-17docs(triaging): correct information about milestonesIgor Minar
2014-03-17docs(guide/module): remove duplicate wordDenis Parchenko
Closes #6709
2014-03-17docs(tutorial): fix broken linkBrian Andersen
On page http://docs.angularjs.org/tutorial/step_05 link is broken. Should point to http://docs.angularjs.org/guide/services NOT http://docs.angularjs.org/guide/dev_guide.services Closes #6714
2014-03-17docs(runnableExamples): add "edit in Plunker" buttonPeter Bacon Darwin
The "runnableExample.template.html" template overrides the one in the dgeni-packages "examples" package with a similar template that also has a link to a special Plunker URL that can pull in the example from our code.angularjs.org website.
2014-03-17chore(shrinkwrap): grunt-jasmine-node is retrieved from githubPeter Bacon Darwin
2014-03-17docs(misc/contribute): make anchor links work properlyCaitlin Potter
Closes #6706
2014-03-16docs(tutorial): fix broken linkBrian Andersen
Fixed a minor error in link Closes #6701
2014-03-15docs(guide/tutorial): make capitalization of "Angular" consistentEmile Silvis
- step_05.ngdoc - step_06.ngdoc - step_07.ngdoc - step_08.ngdoc Closes #6686 Closes #6687 Closes #6688 Closes #6689
2014-03-15fix($http): allow sending Blob data using $httpBruno Baia
Closes #5012
2014-03-14chore(package.json): update karma to 0.12.0Igor Minar