| Age | Commit message (Collapse) | Author | 
 | 
Closes #1051
 | 
 | 
This is a second fix for a regression that was introduced by 92a2e180.
The fix addresses scenarios when the $location service is configured with
a hash prefix.
Closes #1037
 | 
 | 
 | 
 | 
This is a fix for a regression that was introduced by 92a2e180
Closes #1037
 | 
 | 
 | 
 | 
Merging of interpolated class attribute from directive template with replace:true works
Closes #1006
 | 
 | 
This fixes special characters issue with MongoLab.
https://groups.google.com/d/topic/angular/1T6h7bfZ7Rs/discussion
 | 
 | 
Changed the isolate scope binding options to:
  - @attr - attribute binding (including interpolation)
  - =model - by-directional model binding
  - &expr - expression execution binding
This change simplifies the terminology as well as
number of choices available to the developer. It
also supports local name aliasing from the parent.
BREAKING CHANGE: isolate scope bindings definition has changed and
the inject option for the directive controller injection was removed.
To migrate the code follow the example below:
Before:
scope: {
  myAttr: 'attribute',
  myBind: 'bind',
  myExpression: 'expression',
  myEval: 'evaluate',
  myAccessor: 'accessor'
}
After:
scope: {
  myAttr: '@',
  myBind: '@',
  myExpression: '&',
  // myEval - usually not useful, but in cases where the expression is assignable, you can use '='
  myAccessor: '=' // in directive's template change myAccessor() to myAccessor
}
The removed `inject` wasn't generaly useful for directives so there should be no code using it.
 | 
 | 
some browsers (IE) always provide the nodeName as upper-case
 | 
 | 
attr.$observe used to call function only if there was interpolation
on that attribute. We now call the observation function all the time
but we only save the reference to it if interpolation is present.
 | 
 | 
 | 
 | 
This is how it worked in rc9, before refactoring $defer into $timeout.
 | 
 | 
Closes#930
 | 
 | 
This allows location change cancelation
 | 
 | 
 | 
 | 
Publish the application root element as $rootElement
so that it can be injected to other services.
 | 
 | 
templates
BREAKING CHANGE: template in $route definition is now templateUrl
To migrate just rename `template` to `templateUrl`.
 | 
 | 
BREAKING CHANGE
rename $beforeRouteChange to $routeChangeStart
rename $afterRouteChange to $routeChangeSuccess
 | 
 | 
Resolve all promises on route before we fire $afterRouteChange which then renders the ngView.
 | 
 | 
When $digest() throws infinite digest exception it
does not properly clear the $phase leaving the scope
in an inconsistent state.
Closes #979
 | 
 | 
$timeout has a better name ($defer got often confused with something related to $q) and
is actually promise based with cancelation support.
With this commit the $defer service is deprecated and will be removed before 1.0.
Closes #704, #532
 | 
 | 
$position marker doesn't work well in cases when we have just one item
in the list because then the item is both the first and last. To solve
this properly we need to expose individual $first and $middle and $last
flags.
BREAKING CHANGE: $position is not exposed in repeater scopes any more
To update, search for $position and replace it with one of $first,
$middle or $last.
Closes #912
 | 
 | 
 | 
 | 
Breaks event.cancel() is event.stopPropagation()
 | 
 | 
Android has history.pushState, but it does not update the location correctly:
http://code.google.com/p/android/issues/detail?id=17471
Closes #904
 | 
 | 
The url used for location parsing was quite strict and did not support
custom url schemes like "chrome-extension://". With this change the only
requirement for scheme is that it doesn't contain ":" character.
 | 
 | 
The real issue is in FF, see https://bugzilla.mozilla.org/show_bug.cgi?id=407172.
FF overly encodes stuff which breaks our expectations and then we fail .url() != currentUrl.absUrl()
comparison unexpectidly, which leads to infinite digest.
The workaround is to correct for this inconsistency in $browser and decode any single quotes in urls.
Closes #920
 | 
 | 
IE9 ignores setAttribute('src', val) calls on img if "ng:src" attribute
is present. It only fetches the image if element property is updated as well.
Closes #935
 | 
 | 
On IE9 the input event is not fired when backspace or delete key are pressed or when
cut is performed. This makes listening on the input event unreliable and therefore
it's better for us to just use keydown/change events instead.
Closes #879
 | 
 | 
e.g. zero, false, empty string
- fix tests to be executed with csp true
- fix cps (when more than 5 parts)
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
Also add the same error checking for sync templates.
Closes #910
 | 
 | 
 | 
 | 
replace=true
We forgot to reattach the scope to the replacement element. This affected only
directives that had templateUrl and replace:true properties.
Reported on the mailing list:
https://groups.google.com/forum/?fromgroups#!topic/angular/zwjLr1msS2Y
http://jsfiddle.net/lukebayes/g9Sh9/
 | 
 | 
This stuff was never documented and is an accidental leftover from the time
when the compiler was rewritten.
If any code depends on this, it should be rewritten to use ngTransclude directive
intead.
 | 
 | 
Closes #876
 | 
 | 
 | 
 | 
Closes #926
 | 
 | 
CSP (content security policy) forbids apps to use eval or
Function(string) generated functions (among other things). For us to be
compatible, we just need to implement the "getterFn" in $parse without
violating any of these restrictions.
We currently use Function(string) generated functions as a speed
optimization. With this change, it will be possible to opt into the CSP
compatible mode using the ngCsp directive. When this mode is on Angular
will evaluate all expressions up to 30% slower than in non-CSP mode, but
no security violations will be raised.
In order to use this feature put ngCsp directive on the root element of
the application. For example:
<!doctype html>
<html ng-app ng-csp>
  ...
  ...
</html>
Closes #893
 | 
 | 
Previously only when ngOptions was used, we correctly handled situations
when model was set to an unknown value. With this change, we'll add/remove
extra unknown option or reuse an existing empty option (option with value
set to "") when model is undefined.
 | 
 | 
 | 
 | 
IE deals with script tags in special way and .text() does not work. Reading the .text property directly fixes the issue.
 | 
 | 
previously we were doing all kinds of checks to see if we should rewrite the url or not and we
were missing many scenarios. not any more.
with this change, we rewrite the url unless:
- the href is not set
- link has target attribute
- the absolute url of the link doesn't match the absolute prefix for all urls in our app
This also means that ng-ext-link attribute which we previously used to distinguish external
links from app links is not necessary any more. apps can just set target=_self to prevent
rewriting.
BREAKING CHANGE: ng-ext-link directive was removed because it's unnecessary
apps that relied on ng-ext-link should simply replace it with target=_self
 | 
 | 
Often it is impossible to set the http defaults during the config phase,
because the config info is not available at this time.
A good example is authentication - often the app needs to bootstrap,
allow user to enter credentials and only then it gains access to
session token which then should be sent to the server with every request.
Without having the ability to set the defaults at runtime, the developer
either has to resort to hacks, or has to set the session token header
with every request made by the app.
 | 
 | 
links to different base paths should not be left untouched
 | 
 | 
Closes #869
 | 
 | 
Create build for other modules as well (ngResource, ngCookies):
- wrap into a function
- add license
- add version
Breaks `$sanitize` service, `ngBindHtml` directive and `linky` filter were moved to the `ngSanitize` module. Apps that depend on any of these will need to load `angular-sanitize.js` and include `ngSanitize` in their dependency list: `var myApp = angular.module('myApp', ['ngSanitize']);`
 | 
 | 
this was never meant to be a public api used by apps. I refactored
the code to hide the functionality.
BREAKING CHANGE: $browser.addJs method was removed
apps that depended on this functionality should either use many of the
existing script loaders or create a simple helper method specific to the
app.
 |