<feed xmlns='http://www.w3.org/2005/Atom'>
<title>angular.js/test/ng/directive, branch v1.0.0</title>
<subtitle></subtitle>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/'/>
<entry>
<title>feat($compile): simplify isolate scope bindings</title>
<updated>2012-06-08T22:50:13+00:00</updated>
<author>
<name>Misko Hevery</name>
</author>
<published>2012-06-06T20:58:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=c3a41ff9fefe894663c4d4f40a83794521deb14f'/>
<id>c3a41ff9fefe894663c4d4f40a83794521deb14f</id>
<content type='text'>
Changed the isolate scope binding options to:
  - @attr - attribute binding (including interpolation)
  - =model - by-directional model binding
  - &amp;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: '&amp;',
  // 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Changed the isolate scope binding options to:
  - @attr - attribute binding (including interpolation)
  - =model - by-directional model binding
  - &amp;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: '&amp;',
  // 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.
</pre>
</div>
</content>
</entry>
<entry>
<title>doc(NgModelController) add example and $render documentation</title>
<updated>2012-06-02T23:02:09+00:00</updated>
<author>
<name>Misko Hevery</name>
</author>
<published>2012-05-25T17:29:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=8024a5742c46a42ef204988ff7362a4fc14b7a2d'/>
<id>8024a5742c46a42ef204988ff7362a4fc14b7a2d</id>
<content type='text'>
Closes#930
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes#930
</pre>
</div>
</content>
</entry>
<entry>
<title>feat($route): rename template -&gt; tempalteUrl and add support for inline templates</title>
<updated>2012-06-02T00:01:10+00:00</updated>
<author>
<name>Misko Hevery</name>
</author>
<published>2012-05-17T23:36:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=0a6e464a93d9a1e76a624b356054ce9ca4015f55'/>
<id>0a6e464a93d9a1e76a624b356054ce9ca4015f55</id>
<content type='text'>
BREAKING CHANGE: template in $route definition is now templateUrl
To migrate just rename `template` to `templateUrl`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
BREAKING CHANGE: template in $route definition is now templateUrl
To migrate just rename `template` to `templateUrl`.
</pre>
</div>
</content>
</entry>
<entry>
<title>chore($route): rename events</title>
<updated>2012-06-01T23:57:49+00:00</updated>
<author>
<name>Misko Hevery</name>
</author>
<published>2012-06-01T18:31:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=7c2428218893f59c6a4499667488009ca67f3385'/>
<id>7c2428218893f59c6a4499667488009ca67f3385</id>
<content type='text'>
BREAKING CHANGE

rename $beforeRouteChange to $routeChangeStart
rename $afterRouteChange to $routeChangeSuccess
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
BREAKING CHANGE

rename $beforeRouteChange to $routeChangeStart
rename $afterRouteChange to $routeChangeSuccess
</pre>
</div>
</content>
</entry>
<entry>
<title>feat($route): resolve local route promises</title>
<updated>2012-06-01T23:56:31+00:00</updated>
<author>
<name>Misko Hevery</name>
</author>
<published>2012-05-23T04:12:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=885fb0dd0743859a8985c23e4d0c1855a2be711e'/>
<id>885fb0dd0743859a8985c23e4d0c1855a2be711e</id>
<content type='text'>
Resolve all promises on route before we fire $afterRouteChange which then renders the ngView.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Resolve all promises on route before we fire $afterRouteChange which then renders the ngView.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(ngRepeat): expose $first, $middle and $last instead of $position</title>
<updated>2012-05-22T21:18:15+00:00</updated>
<author>
<name>Max</name>
</author>
<published>2012-05-02T16:51:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=1d388676e3b97b6171fc498e82545bd437ee6fd1'/>
<id>1d388676e3b97b6171fc498e82545bd437ee6fd1</id>
<content type='text'>
$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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
$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
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(ngSrc,ngHref): binding should set element prop as well as attr</title>
<updated>2012-05-07T06:01:33+00:00</updated>
<author>
<name>Igor Minar</name>
</author>
<published>2012-05-06T23:30:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=b24cc63bcbd45741d21757653f05d54db09e0f20'/>
<id>b24cc63bcbd45741d21757653f05d54db09e0f20</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(ngModel): use keydown/change events on IE9 instead of input</title>
<updated>2012-05-07T06:01:33+00:00</updated>
<author>
<name>Igor Minar</name>
</author>
<published>2012-05-06T16:27:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=49dfdf8f0238ef8c473fcb44694f6b5696ecde70'/>
<id>49dfdf8f0238ef8c473fcb44694f6b5696ecde70</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(select): don't interfere with selection if not databound</title>
<updated>2012-05-02T21:24:43+00:00</updated>
<author>
<name>Igor Minar</name>
</author>
<published>2012-05-02T07:33:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=3bd3cc571dcd721f9d71f971aefee23115a5e458'/>
<id>3bd3cc571dcd721f9d71f971aefee23115a5e458</id>
<content type='text'>
Closes #926
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #926
</pre>
</div>
</content>
</entry>
<entry>
<title>feat($parse): CSP compatibility</title>
<updated>2012-04-28T06:04:24+00:00</updated>
<author>
<name>Igor Minar</name>
</author>
<published>2012-04-27T22:20:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.teddywing.com/fork/angular.js/commit/?id=2b87c814ab70eaaff6359ce1a118f348c8bd2197'/>
<id>2b87c814ab70eaaff6359ce1a118f348c8bd2197</id>
<content type='text'>
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:

&lt;!doctype html&gt;
&lt;html ng-app ng-csp&gt;
  ...
  ...
&lt;/html&gt;

Closes #893
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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:

&lt;!doctype html&gt;
&lt;html ng-app ng-csp&gt;
  ...
  ...
&lt;/html&gt;

Closes #893
</pre>
</div>
</content>
</entry>
</feed>
