Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit be7c02c

Browse files
committed
docs(changelog): release notes for 1.3.0-beta.8 accidental-haiku
1 parent 14f5734 commit be7c02c

File tree

1 file changed

+188
-0
lines changed

1 file changed

+188
-0
lines changed

CHANGELOG.md

+188
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,191 @@
1+
<a name="1.3.0-beta.8"></a>
2+
# 1.3.0-beta.8 accidental-haiku (2014-05-09)
3+
4+
5+
## Bug Fixes
6+
7+
- **$compile:** set $isolateScope correctly for sync template directives
8+
([562c4e42](https://github.com/angular/angular.js/commit/562c4e424b0ed5f8d4bffba0cd18e66db2059043),
9+
[#6942](https://github.com/angular/angular.js/issues/6942))
10+
- **$httpBackend:** Add missing expectHEAD() method
11+
([e1d61784](https://github.com/angular/angular.js/commit/e1d6178457045e721872022f71227b277cb88726),
12+
[#7320](https://github.com/angular/angular.js/issues/7320))
13+
- **$interpolate:** don't ReferenceError when context is undefined
14+
([924ee6db](https://github.com/angular/angular.js/commit/924ee6db06a2518224caada86769efedd21c0710),
15+
[#7230](https://github.com/angular/angular.js/issues/7230), [#7237](https://github.com/angular/angular.js/issues/7237))
16+
- **grunt-utils:** ensure special inline CSS works when `angular` is not a global
17+
([af72f40a](https://github.com/angular/angular.js/commit/af72f40a5512daa97c1f175a59b547c33cff1dc0),
18+
[#7176](https://github.com/angular/angular.js/issues/7176))
19+
- **injector:** invoke config blocks for module after all providers
20+
([c0b4e2db](https://github.com/angular/angular.js/commit/c0b4e2db9cbc8bc3164cedc4646145d3ab72536e),
21+
[#7139](https://github.com/angular/angular.js/issues/7139), [#7147](https://github.com/angular/angular.js/issues/7147))
22+
- **ngModelOptions:**
23+
- enable overriding the default with a debounce of zero
24+
([c56e32a7](https://github.com/angular/angular.js/commit/c56e32a7fa44e2edd2c70f663906720c7c9ad898),
25+
[#7205](https://github.com/angular/angular.js/issues/7205))
26+
- initialize ngModelOptions in prelink
27+
([fbf5ab8f](https://github.com/angular/angular.js/commit/fbf5ab8f17d28efeadb492c5a252f0778643f072),
28+
[#7281](https://github.com/angular/angular.js/issues/7281), [#7292](https://github.com/angular/angular.js/issues/7292))
29+
- **ngSanitize:** encode surrogate pair properly
30+
([627b0354](https://github.com/angular/angular.js/commit/627b0354ec35bef5c6dbfab6469168c2fadcbee5),
31+
[#5088](https://github.com/angular/angular.js/issues/5088), [#6911](https://github.com/angular/angular.js/issues/6911))
32+
- **ngSrc, ngSrcset:** only interpolate if all expressions are defined
33+
([8d180383](https://github.com/angular/angular.js/commit/8d180383014cbe38d58ff3eab083f51cfcfb8dde),
34+
[#6984](https://github.com/angular/angular.js/issues/6984))
35+
- **ngSwitch:** properly support case labels with different numbers of transclude fns
36+
([ac37915e](https://github.com/angular/angular.js/commit/ac37915ef64c60ec8f8d4e49e4d61d7baeb96ba0),
37+
[#7372](https://github.com/angular/angular.js/issues/7372), [#7373](https://github.com/angular/angular.js/issues/7373))
38+
39+
40+
## Features
41+
42+
- **$compile:** allow SVG and MathML templates via special `type` property
43+
([f0e12ea7](https://github.com/angular/angular.js/commit/f0e12ea7fea853192e4eead00b40d6041c5f914a),
44+
[#7265](https://github.com/angular/angular.js/issues/7265))
45+
- **$interpolate:** add optional allOrNothing param
46+
([c2362e3f](https://github.com/angular/angular.js/commit/c2362e3f45e732a9defdb0ea59ce4ec5236fcd3a))
47+
- **FormController:** commit `$viewValue` of all child controls when form is submitted
48+
([a0ae07bd](https://github.com/angular/angular.js/commit/a0ae07bd4ee8d98654df4eb261d16ca55884e374),
49+
[#7017](https://github.com/angular/angular.js/issues/7017))
50+
- **NgMessages:** introduce the NgMessages module and directives
51+
([0f4016c8](https://github.com/angular/angular.js/commit/0f4016c84a47e01a0fb993867dfd0a64828c089c))
52+
53+
54+
## Breaking Changes
55+
56+
- **$http:** due to [ad4336f9](https://github.com/angular/angular.js/commit/ad4336f9359a073e272930f8f9bcd36587a8648f),
57+
58+
59+
Previously, it was possible to register a response interceptor like so:
60+
61+
```js
62+
// register the interceptor as a service
63+
$provide.factory('myHttpInterceptor', function($q, dependency1, dependency2) {
64+
return function(promise) {
65+
return promise.then(function(response) {
66+
// do something on success
67+
return response;
68+
}, function(response) {
69+
// do something on error
70+
if (canRecover(response)) {
71+
return responseOrNewPromise
72+
}
73+
return $q.reject(response);
74+
});
75+
}
76+
});
77+
78+
$httpProvider.responseInterceptors.push('myHttpInterceptor');
79+
```
80+
81+
Now, one must use the newer API introduced in v1.1.4 (4ae46814), like so:
82+
83+
```js
84+
$provide.factory('myHttpInterceptor', function($q) {
85+
return {
86+
response: function(response) {
87+
// do something on success
88+
return response;
89+
},
90+
responseError: function(response) {
91+
// do something on error
92+
if (canRecover(response)) {
93+
return responseOrNewPromise
94+
}
95+
return $q.reject(response);
96+
}
97+
};
98+
});
99+
100+
$httpProvider.interceptors.push('myHttpInterceptor');
101+
```
102+
103+
More details on the new interceptors API (which has been around as of v1.1.4) can be found at
104+
https://docs.angularjs.org/api/ng/service/$http#interceptors
105+
106+
107+
- **injector:** due to [c0b4e2db](https://github.com/angular/angular.js/commit/c0b4e2db9cbc8bc3164cedc4646145d3ab72536e),
108+
109+
Previously, config blocks would be able to control behaviour of provider registration, due to being
110+
invoked prior to provider registration. Now, provider registration always occurs prior to configuration
111+
for a given module, and therefore config blocks are not able to have any control over a providers
112+
registration.
113+
114+
**Example**:
115+
116+
Previously, the following:
117+
118+
```js
119+
angular.module('foo', [])
120+
.provider('$rootProvider', function() {
121+
this.$get = function() { ... }
122+
})
123+
.config(function($rootProvider) {
124+
$rootProvider.dependentMode = "B";
125+
})
126+
.provider('$dependentProvider', function($rootProvider) {
127+
if ($rootProvider.dependentMode === "A") {
128+
this.$get = function() {
129+
// Special mode!
130+
}
131+
} else {
132+
this.$get = function() {
133+
// something else
134+
}
135+
}
136+
});
137+
```
138+
139+
would have "worked", meaning behaviour of the config block between the registration of "$rootProvider"
140+
and "$dependentProvider" would have actually accomplished something and changed the behaviour of the
141+
app. This is no longer possible within a single module.
142+
143+
144+
- **ngModelOptions:** due to [adfc322b](https://github.com/angular/angular.js/commit/adfc322b04a58158fb9697e5b99aab9ca63c80bb),
145+
146+
147+
This commit changes the API on `NgModelController`, both semantically and
148+
in terms of adding and renaming methods.
149+
150+
* `$setViewValue(value)` -
151+
This method still changes the `$viewValue` but does not immediately commit this
152+
change through to the `$modelValue` as it did previously.
153+
Now the value is committed only when a trigger specified in an associated
154+
`ngModelOptions` directive occurs. If `ngModelOptions` also has a `debounce` delay
155+
specified for the trigger then the change will also be debounced before being
156+
committed.
157+
In most cases this should not have a significant impact on how `NgModelController`
158+
is used: If `updateOn` includes `default` then `$setViewValue` will trigger
159+
a (potentially debounced) commit immediately.
160+
* `$cancelUpdate()` - is renamed to `$rollbackViewValue()` and has the same meaning,
161+
which is to revert the current `$viewValue` back to the `$lastCommittedViewValue`,
162+
to cancel any pending debounced updates and to re-render the input.
163+
164+
To migrate code that used `$cancelUpdate()` follow the example below:
165+
166+
Before:
167+
168+
```js
169+
$scope.resetWithCancel = function (e) {
170+
if (e.keyCode == 27) {
171+
$scope.myForm.myInput1.$cancelUpdate();
172+
$scope.myValue = '';
173+
}
174+
};
175+
```
176+
177+
After:
178+
179+
```js
180+
$scope.resetWithCancel = function (e) {
181+
if (e.keyCode == 27) {
182+
$scope.myForm.myInput1.$rollbackViewValue();
183+
$scope.myValue = '';
184+
}
185+
}
186+
```
187+
188+
1189
<a name="v1.3.0-beta.7"></a>
2190
# v1.3.0-beta.7 proper-attribution (2014-04-25)
3191

0 commit comments

Comments
 (0)