aboutsummaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)Author
2013-10-09fix(jqLite): ignore class methods on comment elementsVojta Jina
Since c785267e jqLite uses setAttribute (rather than className property) in order to change classes. Some elements (eg. Comment) do not have this method which blows up. jQuery silently ignores these method calls (because it uses className), so to get the same behavior as jQuery, we check for setAttribute method first.
2013-10-09revert: fix($parse): handle promises returned from parsed function callsIgor Minar
This reverts commit 3a65822023119b71deab5e298c7ef2de204caa13. The change cased regressions in third party components that require promises from getter functions not to be unwrapped. Since we have deprecated the promise unwrapping support in $parse it doesn't make much sense to fix this issue and deal with regressions in third party code. Closes #4158
2013-10-09fix($parse): deprecate promise unwrapping and make it an opt-inIgor Minar
This commit disables promise unwrapping and adds $parseProvider.unwrapPromises() getter/setter api that allows developers to turn the feature back on if needed. Promise unwrapping support will be removed from Angular in the future and this setting only allows for enabling it during transitional period. If the unwrapping is enabled, Angular will log a warning about each expression that unwraps a promise (to reduce the noise, each expression is logged only onces). To disable this logging use `$parseProvider.logPromiseWarnings(false)`. Previously promises found anywhere in the expression during expression evaluation would evaluate to undefined while unresolved and to the fulfillment value if fulfilled. This is a feature that didn't prove to be wildly useful or popular, primarily because of the dichotomy between data access in templates (accessed as raw values) and controller code (accessed as promises). In most code we ended up resolving promises manually in controllers or automatically via routing and unifying the model access in this way. Other downsides of automatic promise unwrapping: - when building components it's often desirable to receive the raw promises - adds complexity and slows down expression evaluation - makes expression code pre-generation unattractive due to the amount of code that needs to be generated - makes IDE auto-completion and tool support hard - adds too much magic BREAKING CHANGE: $parse and templates in general will no longer automatically unwrap promises. This feature has been deprecated and if absolutely needed, it can be reenabled during transitional period via `$parseProvider.unwrapPromises(true)` api. Closes #4158 Closes #4270
2013-10-09docs($anchorScroll): fix example controller and styleBen Lesh
Changed controller name in example html to ScrollCtrl to match name in example js. Add styling to example html so scrollable area is not obtrusive to documentation page design. Closes #3898
2013-10-09docs($log): explain how to configure debug loggingHenry Hazan
Closes #4348
2013-10-09fix(ngMock.$interval): should use angular.isDefinedMark J. Titorenko
The newly introduced `$interval` mock service for ngMock calls `isDefined` in the global namespace which fails when used within unit tests. This change adds the missing `angular.` prefix to such `isDefined` calls. Closes #4334 Closes #4353
2013-10-08docs(jqLite): improve jqLite docsBrian Ford
2013-10-08fix(ngTouch): ngClick does not pass touchend event when jQuery is loadedSteven Sojka
The trigger handler event in jqLite takes an event object as a second parameter, but jQuery requires an array of parameters. This is causing the touchend event to not come thtough in the click handler when jQuery is loaded.
2013-10-08fix(ngTouch): add $event to ng-swipeAdam Kent
Existing documentation implies that an Event object should be available as `$event` on swipe directives, which previously was only working for `ng-click`. Closes #4071 Closes #4321
2013-10-08docs(angular.equals): fix simple typoMarc Tamlyn
- JavasScript -> Javascript Closes #4323
2013-10-07fix(input): `false` is no longer an empty value by defaultPete Bacon Darwin
`checkboxInputType` and `ngList` directives need to have special logic for whether they are empty or not. Previously this had been hard coded into their own directives or the `ngRequired` directive. This made it difficult to handle these special cases. This change factors out the question of whether an input is empty into a method `$isEmpty` on the `ngModelController`. The `ngRequired` directive now uses this method when testing for validity and directives, such as `checkbox` or `ngList` can override it to apply logic specific to their needs. Closes #3490, #3658, #2594
2013-10-07feat($interval): add a service wrapping setIntervalJulie
The $interval service simplifies creating and testing recurring tasks. This service does not increment $browser's outstanding request count, which means that scenario tests and Protractor tests will not timeout when a site uses a polling function registered by $interval. Provides a workaround for #2402. For unit tests, repeated tasks can be controlled using ngMock$interval's tick(), tickNext(), and tickAll() functions.
2013-10-07fix(ngScenario): remove redundant assignmentPete Bacon Darwin
Closes #4315
2013-10-07revert: refactor($parse): only instantiate lex/parse onceIgor Minar
This reverts commit 281feba4caffd14ffbd6dedfb95ad6415cff8483. Since Lexer and Parser objects are stateful it is not safe to reuse them for parsing of multiple expressions. After recent refactoring into prototypical style, the instantiation of these objects is so cheap that it's not a huge win to use singletons here.
2013-10-07fix(*): protect calls to hasOwnProperty in public APIPeter Bacon Darwin
Objects received from outside AngularJS may have had their `hasOwnProperty` method overridden with something else. In cases where we can do this without incurring a performance penalty we call directly on Object.prototype.hasOwnProperty to ensure that we use the correct method. Also, we have some internal hash objects, where the keys for the map are provided from outside AngularJS. In such cases we either prevent `hasOwnProperty` from being used as a key or provide some other way of preventing our objects from having their `hasOwnProperty` overridden. BREAKING CHANGE: Inputs with name equal to "hasOwnProperty" are not allowed inside form or ngForm directives. Before, inputs whose name was "hasOwnProperty" were quietly ignored and not added to the scope. Now a badname exception is thrown. Using "hasOwnProperty" for an input name would be very unusual and bad practice. Either do not include such an input in a `form` or `ngForm` directive or change the name of the input. Closes #3331
2013-10-07style(select): fix semicolons and varsPeter Bacon Darwin
2013-10-07docs(ngModel): fix grammar and improve clarityDave Peticolas
Closes #4291
2013-10-07refactor($parse): only instantiate lex/parse oncePeter Bacon Darwin
Closes #4286
2013-10-07docs(ngValue): add docs for ngValue directiveBrian Ford
Closes #4267
2013-10-05fix(rootScope): make stopPropagation only stop its own eventPete Bacon Darwin
All sibling event handlers residing on the same scope to were stopped if one of them called stopPropagation. Closes #4204
2013-10-05docs(a): change model.$save() into something less deceptiveMichiel Staessen
Closes #4215
2013-10-05docs(ngList): improve grammar and clarityDave Peticolas
2013-10-05docs(filter): add missing semi-colonTom Elovie Spruce
Closes #4273
2013-10-05docs($resource): remove extra "to" from $resource docsDavid Barker
Closes #4287
2013-10-04fix(ngResource): Remove request body from $deleteJen Bourey
Prevent the obj.$delete instance method from sending the resource as the request body. This commit uses the existing hasBody boolean to only set httpConfig.data for methods which should have a request body. Closes #4280
2013-10-04chore($parse): convert parser() and lex() to prototype-based codejankuca
This reduces memory consumption of parsed angular expressions and speeds up parsing. This JSPerf case demonstrates the performance boost: http://jsperf.com/closure-vs-prototype-ngparser Chrome: 1.5–2x boost FF: slightly slower (I would love to know why) IE: 4x boost To be clear, this doesn't have any impact on runtime performance of expressions as demostrated in this JSPerf: http://jsperf.com/angular-parser-changes Closes #3681
2013-10-04fix(routeProvider): parametrized routes do not match against locations that ↵Nicola Peduzzi
would not valorize each parameters.
2013-10-03fix($compile): fix (reverse) directive postLink fn execution orderIgor Minar
previously the compile/link fns executed in this order controlled via priority: - CompilePriorityHigh, CompilePriorityMedium, CompilePriorityLow - PreLinkPriorityHigh, PreLinkPriorityMedium, PreLinkPriorityLow - link children - PostLinkPriorityHigh, PostLinkPriorityMedium, PostLinkPriorityLow This was changed to: - CompilePriorityHigh, CompilePriorityMedium, CompilePriorityLow - PreLinkPriorityHigh, PreLinkPriorityMedium, PreLinkPriorityLow - link children - PostLinkPriorityLow, PostLinkPriorityMedium , PostLinkPriorityHigh Using this order the child transclusion directive that gets replaced onto the current element get executed correctly (see issue #3558), and more generally, the order of execution of post linking function makes more sense. The incorrect order was an oversight that has gone unnoticed for many suns and moons. (FYI: postLink functions are the default linking functions) BREAKING CHANGE: the order of postLink fn is now mirror opposite of the order in which corresponding preLinking and compile functions execute. Very few directives in practice rely on order of postLinking function (unlike on the order of compile functions), so in the rare case of this change affecting an existing directive, it might be necessary to convert it to a preLinking function or give it negative priority (look at the diff of this commit to see how an internal attribute interpolation directive was adjusted). Closes #3558
2013-10-03fix($compile): don't terminate compilation for regular transclusion directivesIgor Minar
Previously we would stop the compilation for both regular and element transclusion directives which was wrong. Only element transclusion directives should be terminal.
2013-10-03docs(angular.bind): clarify that bind is partial applicationJoe Hanink
The `angular.bind` function reflects the definition of "partial application", which reduces a function's arity rather than transforming a function with n args into a chain of n functions, each having a single arg. curry : f(x,y,z) -> f(x)(y)(z) partial application : f(x,y,z) -> f(x)(y,z) Closes #4239
2013-10-03docs($sce): fix punctuationSimeon Willbanks
Closes #4235
2013-10-03docs(rootScope): improve grammar and clarityDave Peticolas
Closes #4234
2013-10-03docs(ngInclude): clarity, formattingDave Peticolas
Closes #4222
2013-10-03docs(ngClass): clarify the descriptionDave Peticolas
Closes #4220
2013-10-03docs($compile): fix param description being displayed as code blockbasarat
Closes #4187
2013-10-03docs(select): clarify usagegdennie
The wording seemed confusing and these adjustments seem to capture the intent with less turbulence. Closes #4257
2013-10-03fix($sanitize): sanitize DOCTYPE declarations correctlypaolo-delmundo
HTML to be sanitized that contains a DOCTYPE declaration were causing the HTML parser to throw an error. Now the parser correctly removes the declarations when sanitizing HTML. Closes #3931
2013-10-02fix($resource): pass transformed value to both callbacks and promisesjankuca
Closes #3817
2013-10-02fix(isArrayLike): correctly handle string primitivesDaniel Luz
Closes #3356
2013-10-02feat(ngMock.$timeout): remove flushNext methodVojta Jina
2013-10-02fix($location): prevent infinite digest error in IE7Angel Balcarcel
Refactored `replacedUrl` to store the new URL on both `location.replace` and setting `location.href` directly to handle delays in the actual location value change in IE. Closes #2802
2013-10-02fix($scope): $evalAsync executes on the right scopeLucas Galfasó
Executes $evalAsync at the scope that the call was made Closes: #3548
2013-10-02docs($compile): improve explanation of Attributes.$observeBuu Nguyen
The current comment of Attributes.$observe doesn't state correctly the behavior when the attribute contains no interpolation. Specifically, it states that the observer function will never be invoked if the attribute contains no interpolation. However, the actual behavior in this case is that the observer will be invoked once during the next digest loop.
2013-10-02fix($compile): ng-attr to support dash separated attribute namesJamie Mason
2013-10-01feat($compile): support tel: links in a[href]Ben McCann
Allow `tel:` links so that click-to-call works in mobile browsers
2013-10-01fix($compile): allow interpolations for non-event handlers attrsFrancesco Pontillo
Fix wrong behaviour that didn't allow 'data-on' and 'on' element attributes to be interpolated by $compile. The regex now accepts any string beginning with 'on' and with at least one more English letter.
2013-10-01docs(ngRoute): add angularEvent param to $routeChangeStart eventMatthew Kleiman
Adds missing implied first argument, `angularEvent`, to match the rest of the `$routeChange` event documentation.
2013-10-01fix($httpBackend): set headers with falsy valuesRicardo Bin
This is a breaking change. To migrate to the new behavior, delete or set headers to `undefined` to avoid having them sent. To restore the old behavior, override `$httpBackendProvider` with the old implementation. Closes #2984
2013-10-01fix($animator): avoid completing the animation asynchronously unless CSS ↵Matias Niemelä
transtiions/animations are present Closes #4023 Closes #3940
2013-10-01fix($httpBackend): don't send empty string bodiesJames Roper
The `XMLHttpRequest.send` spec defines different semantics for `null` than for an empty String: an empty String should be sent with a `Content-Type` of `text/plain`, whereas `null` should have no `Content-Type` header set. Closes #2149