docs(changelog, guide/migration): mention rare BC for ngInclude

See https://github.com/angular/angular.js/issues/13555#issuecomment-165118890
for detailed explanation.
This commit is contained in:
Martin Staffa
2016-06-07 10:24:20 +02:00
parent 6234cda41c
commit 996c901ff9
2 changed files with 78 additions and 7 deletions
+38
View File
@@ -956,6 +956,44 @@ describe('$q.when', function() {
[#11580](https://github.com/angular/angular.js/issues/11580), [#12234](https://github.com/angular/angular.js/issues/12234)) [#11580](https://github.com/angular/angular.js/issues/11580), [#12234](https://github.com/angular/angular.js/issues/12234))
## Breaking Changes
- **ngInclude:** due to [3c6e8ce044446735eb2e70d0061db8c6db050289](https://github.com/angular/angular.js/commit/3c6e8ce044446735eb2e70d0061db8c6db050289), the `src` attribute of ngInclude no longer accepts an
expression that returns the result of `$sce.trustAsResourceUrl`. This will now cause an infinite digest:
Before:
```html
<div ng-include="findTemplate('https://example.com/myTemplate.html')"></div>
```
```js
$scope.findTemplate = function(templateName) {
return $sce.trustAsResourceUrl(templateName);
};
```
To migrate, either cache the result of `trustAsResourceUrl()`, or put the template url in the resource
whitelist in the `config()` function:
After:
```js
var templateCache = {};
$scope.findTemplate = function(templateName) {
if (!templateCache[templateName]) {
templateCache[templateName] = $sce.trustAsResourceUrl(templateName);
}
return templateCache[templateName];
};
// Alternatively, use `$sceDelegateProvider.resourceUrlWhitelist()`:
angular.module('myApp', []).config(function($sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist(['self', 'https://example.com/**'])
});
```
<a name="1.3.17"></a> <a name="1.3.17"></a>
# 1.3.17 tsktskskly-euouae (2015-07-06) # 1.3.17 tsktskskly-euouae (2015-07-06)
+40 -7
View File
@@ -284,7 +284,7 @@ angular.module('myApp').directive('form', function() {
}); });
``` ```
## Templating (`ngRepeat`, `$compile`) ## Templating (`ngRepeat`, `$compile`, `ngInclude`)
### ngRepeat ### ngRepeat
@@ -316,6 +316,45 @@ returning an object from a controller constructor function will now override the
controllerAs method will no longer get the this reference, but the returned object. controllerAs method will no longer get the this reference, but the returned object.
### ngInclude:
Due to [3c6e8ce044446735eb2e70d0061db8c6db050289](https://github.com/angular/angular.js/commit/3c6e8ce044446735eb2e70d0061db8c6db050289), the `src` attribute of ngInclude no longer accepts an
expression that returns the result of `$sce.trustAsResourceUrl`. This will now cause an infinite digest:
Before:
```html
<div ng-include="findTemplate('https://example.com/templates/myTemplate.html')"></div>
```
```js
$scope.findTemplate = function(templateName) {
return $sce.trustAsResourceUrl(templateName);
};
```
To migrate, either cache the result of `trustAsResourceUrl()`, or put the template url in the resource
whitelist in the `config()` function:
After:
```js
var templateCache = {};
$scope.findTemplate = function(templateName) {
if (!templateCache[templateName]) {
templateCache[templateName] = $sce.trustAsResourceUrl(templateName);
}
return templateCache[templateName];
};
// Alternatively, use `$sceDelegateProvider.resourceUrlWhitelist()`, which means you don't
// have to use `$sce.trustAsResourceUrl()` at all:
angular.module('myApp', []).config(function($sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist(['self', 'https://example.com/templates/**'])
});
```
## Cookies (`ngCookies`) ## Cookies (`ngCookies`)
Due to [38fbe3ee](https://github.com/angular/angular.js/commit/38fbe3ee8370fc449b82d80df07b5c2ed2cd5fbe), Due to [38fbe3ee](https://github.com/angular/angular.js/commit/38fbe3ee8370fc449b82d80df07b5c2ed2cd5fbe),
@@ -353,8 +392,6 @@ has been moved to `$cookies`, to which `$cookieStore` now simply
delegates calls. delegates calls.
## Server Requests (`$http`) ## Server Requests (`$http`)
Due to [5da1256](https://github.com/angular/angular.js/commit/5da1256fc2812d5b28fb0af0de81256054856369), Due to [5da1256](https://github.com/angular/angular.js/commit/5da1256fc2812d5b28fb0af0de81256054856369),
@@ -386,8 +423,6 @@ $http.get(url, {
``` ```
## Filters (`filter`, `limitTo`) ## Filters (`filter`, `limitTo`)
### `filter` filter ### `filter` filter
@@ -405,8 +440,6 @@ Now, instead of returning empty object/array, it returns unchanged input.
# Migrating from 1.2 to 1.3 # Migrating from 1.2 to 1.3
## Controllers ## Controllers