diff --git a/snapshot/angular-1.5.0-build.4525+sha.2cb1989.zip b/snapshot/angular-1.5.0-build.4527+sha.bd59335.zip similarity index 86% rename from snapshot/angular-1.5.0-build.4525+sha.2cb1989.zip rename to snapshot/angular-1.5.0-build.4527+sha.bd59335.zip index 840ed13b86..b5eca59984 100644 Binary files a/snapshot/angular-1.5.0-build.4525+sha.2cb1989.zip and b/snapshot/angular-1.5.0-build.4527+sha.bd59335.zip differ diff --git a/snapshot/angular-animate.js b/snapshot/angular-animate.js index 63a4134823..f82e67883e 100644 --- a/snapshot/angular-animate.js +++ b/snapshot/angular-animate.js @@ -1,5 +1,5 @@ /** - * @license AngularJS v1.5.0-build.4525+sha.2cb1989 + * @license AngularJS v1.5.0-build.4527+sha.bd59335 * (c) 2010-2016 Google, Inc. http://angularjs.org * License: MIT */ diff --git a/snapshot/angular-animate.min.js b/snapshot/angular-animate.min.js index b17b77893d..b96260e36c 100644 --- a/snapshot/angular-animate.min.js +++ b/snapshot/angular-animate.min.js @@ -1,5 +1,5 @@ /* - AngularJS v1.5.0-build.4525+sha.2cb1989 + AngularJS v1.5.0-build.4527+sha.bd59335 (c) 2010-2016 Google, Inc. http://angularjs.org License: MIT */ diff --git a/snapshot/angular-aria.js b/snapshot/angular-aria.js index ac28455034..2f24263cc7 100644 --- a/snapshot/angular-aria.js +++ b/snapshot/angular-aria.js @@ -1,5 +1,5 @@ /** - * @license AngularJS v1.5.0-build.4525+sha.2cb1989 + * @license AngularJS v1.5.0-build.4527+sha.bd59335 * (c) 2010-2016 Google, Inc. http://angularjs.org * License: MIT */ diff --git a/snapshot/angular-aria.min.js b/snapshot/angular-aria.min.js index ee93a90f96..0609aea0c4 100644 --- a/snapshot/angular-aria.min.js +++ b/snapshot/angular-aria.min.js @@ -1,5 +1,5 @@ /* - AngularJS v1.5.0-build.4525+sha.2cb1989 + AngularJS v1.5.0-build.4527+sha.bd59335 (c) 2010-2016 Google, Inc. http://angularjs.org License: MIT */ diff --git a/snapshot/angular-cookies.js b/snapshot/angular-cookies.js index 98203fe6d3..715db3dba5 100644 --- a/snapshot/angular-cookies.js +++ b/snapshot/angular-cookies.js @@ -1,5 +1,5 @@ /** - * @license AngularJS v1.5.0-build.4525+sha.2cb1989 + * @license AngularJS v1.5.0-build.4527+sha.bd59335 * (c) 2010-2016 Google, Inc. http://angularjs.org * License: MIT */ diff --git a/snapshot/angular-cookies.min.js b/snapshot/angular-cookies.min.js index 383f38c9bb..d719ea5399 100644 --- a/snapshot/angular-cookies.min.js +++ b/snapshot/angular-cookies.min.js @@ -1,5 +1,5 @@ /* - AngularJS v1.5.0-build.4525+sha.2cb1989 + AngularJS v1.5.0-build.4527+sha.bd59335 (c) 2010-2016 Google, Inc. http://angularjs.org License: MIT */ diff --git a/snapshot/angular-loader.js b/snapshot/angular-loader.js index 0ca704caa4..6ac652bde8 100644 --- a/snapshot/angular-loader.js +++ b/snapshot/angular-loader.js @@ -1,5 +1,5 @@ /** - * @license AngularJS v1.5.0-build.4525+sha.2cb1989 + * @license AngularJS v1.5.0-build.4527+sha.bd59335 * (c) 2010-2016 Google, Inc. http://angularjs.org * License: MIT */ @@ -87,7 +87,7 @@ function minErr(module, ErrorConstructor) { return match; }); - message += '\nhttp://errors.angularjs.org/1.5.0-build.4525+sha.2cb1989/' + + message += '\nhttp://errors.angularjs.org/1.5.0-build.4527+sha.bd59335/' + (module ? module + '/' : '') + code; for (i = SKIP_INDEXES, paramPrefix = '?'; i < templateArgs.length; i++, paramPrefix = '&') { diff --git a/snapshot/angular-loader.min.js b/snapshot/angular-loader.min.js index 22595e745c..6c07ad6a83 100644 --- a/snapshot/angular-loader.min.js +++ b/snapshot/angular-loader.min.js @@ -1,9 +1,9 @@ /* - AngularJS v1.5.0-build.4525+sha.2cb1989 + AngularJS v1.5.0-build.4527+sha.bd59335 (c) 2010-2016 Google, Inc. http://angularjs.org License: MIT */ -(function(){'use strict';function d(b){return function(){var a=arguments[0],e;e="["+(b?b+":":"")+a+"] http://errors.angularjs.org/1.5.0-build.4525+sha.2cb1989/"+(b?b+"/":"")+a;for(a=1;a(?:<\/\1>|)$/,Wb=/<|&#?\w+;/,If=/<([\w:-]+)/,Jf=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,ea={option:[1,'', ""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ea.optgroup=ea.option;ea.tbody=ea.tfoot=ea.colgroup=ea.caption=ea.thead;ea.th=ea.td;var Qf=Node.prototype.contains||function(a){return!!(this.compareDocumentPosition(a)&16)},Ra=T.prototype={ready:function(a){function b(){d||(d=!0,a())}var d=!1;"complete"===V.readyState?setTimeout(b):(this.on("DOMContentLoaded", b),T(Q).on("load",b))},toString:function(){var a=[];n(this,function(b){a.push(""+b)});return"["+a.join(", ")+"]"},eq:function(a){return 0<=a?C(this[a]):C(this[this.length+a])},length:0,push:yg,sort:[].sort,splice:[].splice},Eb={};n("multiple selected checked disabled readOnly required open".split(" "),function(a){Eb[L(a)]=a});var Tc={};n("input select option textarea button form details".split(" "),function(a){Tc[a]=!0});var ad={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max", ngPattern:"pattern"};n({data:Zb,removeData:ib,hasData:function(a){for(var b in jb[a.ng339])return!0;return!1},cleanData:function(a){for(var b=0,d=a.length;b Reverse: {{greeting|reverse}}
Reverse + uppercase: {{greeting|reverse:true}}
+ Reverse, filtered in controller: {{filteredGreeting}}
\ No newline at end of file diff --git a/snapshot/docs/examples/example-example30/index-jquery.html b/snapshot/docs/examples/example-example30/index-jquery.html index 74e71d36f5..31c15b988d 100644 --- a/snapshot/docs/examples/example-example30/index-jquery.html +++ b/snapshot/docs/examples/example-example30/index-jquery.html @@ -18,6 +18,7 @@ No filter: {{greeting}}
Reverse: {{greeting|reverse}}
Reverse + uppercase: {{greeting|reverse:true}}
+ Reverse, filtered in controller: {{filteredGreeting}}
\ No newline at end of file diff --git a/snapshot/docs/examples/example-example30/index-production.html b/snapshot/docs/examples/example-example30/index-production.html index c542851a93..ff17332e6a 100644 --- a/snapshot/docs/examples/example-example30/index-production.html +++ b/snapshot/docs/examples/example-example30/index-production.html @@ -17,6 +17,7 @@ No filter: {{greeting}}
Reverse: {{greeting|reverse}}
Reverse + uppercase: {{greeting|reverse:true}}
+ Reverse, filtered in controller: {{filteredGreeting}}
\ No newline at end of file diff --git a/snapshot/docs/examples/example-example30/index.html b/snapshot/docs/examples/example-example30/index.html index c15c34dc5a..f751ebe877 100644 --- a/snapshot/docs/examples/example-example30/index.html +++ b/snapshot/docs/examples/example-example30/index.html @@ -17,6 +17,7 @@ No filter: {{greeting}}
Reverse: {{greeting|reverse}}
Reverse + uppercase: {{greeting|reverse:true}}
+ Reverse, filtered in controller: {{filteredGreeting}}
\ No newline at end of file diff --git a/snapshot/docs/examples/example-example30/script.js b/snapshot/docs/examples/example-example30/script.js index 2b788a5b09..11a155a7ed 100644 --- a/snapshot/docs/examples/example-example30/script.js +++ b/snapshot/docs/examples/example-example30/script.js @@ -15,7 +15,8 @@ angular.module('myReverseFilterApp', []) return out; }; }) - .controller('MyController', ['$scope', function($scope) { + .controller('MyController', ['$scope', 'reverseFilter', function($scope, reverseFilter) { $scope.greeting = 'hello'; + $scope.filteredGreeting = reverseFilter($scope.greeting); }]); })(window.angular); \ No newline at end of file diff --git a/snapshot/docs/js/search-data.json b/snapshot/docs/js/search-data.json index 65864c2a6d..8414d08229 100644 --- a/snapshot/docs/js/search-data.json +++ b/snapshot/docs/js/search-data.json @@ -680,7 +680,7 @@ { "path": "guide/filter", "titleWords": "Filters", - "keywords": "$12 $digest $filterprovider $stateful able addition additional alert alert-warning allowed also an and angular angularjs another any api applied are argument arguments array arrays as backend based be because below big by call called calls can capitalization chaining change changed characters class conditionally conditions controller controllers converted costly creating currency custom cycle data decimal define dependency digest directives directly discouraged display do dots during each easy every example example-example29 example-example30 example-example31 executed executes execution exposing expression expressions factory filter filter1 filter2 filterprovider filters first following for format formats from fulltext function guide have hidden however html hyphens idempotent identifiers if in inject injected input inputs internally into is issues it just leads like loaded makes many mark markup may means model module more must myapp_subsection_filterx myappsubsectionfilterx name names namespace need needed new ng not number numberfilter of often on one only optimized or orderby org overview own parameters partials passed performance points properties reduces reevaluate register relies result resulting return reverses sample search second see services should special starting state stateful stateless string strongly sub such syntax takes template templates test testing text that the then therefore these they this those times to turning tutorial underlying underscores upper-case uppercase use used user uses using valid value very view when which wikipedia will wish with would write writing you your", + "keywords": "$12 $digest $filterprovider $stateful able addition additional alert alert-info alert-warning allowed also an and angular angularjs another any api applied are argument arguments array arrays as backend based be because below big by call called calls can capitalization chaining change changed characters class conditionally conditions controller controllers converted costly creating currency custom cycle data decimal define dependency digest directives directly discouraged display do dots during each easy every example example-example29 example-example30 example-example31 executed executes execution exposing expression expressions factory filter filter1 filter2 filterprovider filters first following for format formats from fulltext function guide have hidden however html hyphens idempotent identifiers if in inject injected input inputs internally into is issues it just leads like loaded makes many mark markup may means model module more must myapp_subsection_filterx myappsubsectionfilterx name names namespace need needed new ng not number numberfilter of often on one only optimized or orderby org overview own parameters partials passed performance points properties reduces reevaluate register relies result resulting return reverses sample search second see services should special starting state stateful stateless string strongly sub such syntax takes template templates test testing text that the then therefore these they this those times to turning tutorial underlying underscores upper-case uppercase use used user uses using valid value very view when which wikipedia will wish with would write writing you your", "members": "" }, { @@ -848,7 +848,7 @@ { "path": "tutorial/step_06", "titleWords": "6 - Templating Links & Images", - "keywords": "__ about access add added additional address all also an and angular app applications are as attribute before binding brace browser can catalog chance chrome class click confirm contains content correct create css data defy detail directive directory display doc-tutorial-nav doc-tutorial-reset done double-curly dynamically each easy element end-to-end evaluate expect experiments expression extraneous file filter fire firebug first for from function future generate generating getlocationabsurl go had has have here hits how href html http id ids if image images imageurl img implement in indeed information initiating inject inspecting inspector invalid is issue it jpg js json layout lead learn li links list literally location logs makes making markup model motoblur motorola motorola-defy-with-motoblur multiple name new next nexus ng ng-repeat ng-src ngsrc note now now-familiar nowhere npm of old only or orderby pages partials phone phones plain point prevents protractor query record regular render replace request rerun run see sendkeys should snippet soon specific specified src step step_06 step_07 steps subsequent such summary tag template templates templating test tests that the then there this thumb thumbnail to tobe tools treating tutorial unique upcoming url urls use used using valid values var verify views we web webserver which will with would you", + "keywords": "__ about access add added additional address all also alt an and angular app applications are as attribute before binding brace browser can catalog chance chrome class click confirm contains content correct create css data defy detail directive directory display doc-tutorial-nav doc-tutorial-reset done double-curly dynamically each easy element end-to-end evaluate expect experiments expression extraneous file filter fire firebug first for from function future generate generating getlocationabsurl go had has have here hits how href html http id ids if image images imageurl img implement in indeed information initiating inject inspecting inspector invalid is issue it jpg js json layout lead learn li links list literally location logs makes making markup model motoblur motorola motorola-defy-with-motoblur multiple name new next nexus ng ng-repeat ng-src ngsrc note now now-familiar nowhere npm of old only or orderby pages partials phone phones plain point prevents protractor query record regular render replace request rerun run see sendkeys should snippet soon specific specified src step step_06 step_07 steps subsequent such summary tag template templates templating test tests that the then there this thumb thumbnail to tobe tools treating tutorial unique upcoming url urls use used using valid values var verify views we web webserver which will with would you", "members": "" }, { diff --git a/snapshot/docs/js/versions-data.js b/snapshot/docs/js/versions-data.js index cab9ec44f4..506a48ddfe 100644 --- a/snapshot/docs/js/versions-data.js +++ b/snapshot/docs/js/versions-data.js @@ -7,15 +7,15 @@ angular.module('versionsData', []) "patch": 0, "prerelease": [ "build", - "4525" + "4527" ], - "build": "sha.2cb1989", - "version": "1.5.0-build.4525", + "build": "sha.bd59335", + "version": "1.5.0-build.4527", "codeName": "snapshot", "isSnapshot": true, - "full": "1.5.0-build.4525+sha.2cb1989", + "full": "1.5.0-build.4527+sha.bd59335", "branch": "master", - "commitSHA": "2cb1989d12f7fa3acaafb8d762c91b156edd8603" + "commitSHA": "bd59335eba6fa2ca845daa7c90dd296cc7e6254d" }) .value('NG_VERSIONS', [ { @@ -25,15 +25,15 @@ angular.module('versionsData', []) "patch": 0, "prerelease": [ "build", - "4525" + "4527" ], - "build": "sha.2cb1989", - "version": "1.5.0-build.4525", + "build": "sha.bd59335", + "version": "1.5.0-build.4527", "codeName": "snapshot", "isSnapshot": true, - "full": "1.5.0-build.4525+sha.2cb1989", + "full": "1.5.0-build.4527+sha.bd59335", "branch": "master", - "commitSHA": "2cb1989d12f7fa3acaafb8d762c91b156edd8603" + "commitSHA": "bd59335eba6fa2ca845daa7c90dd296cc7e6254d" }, { "raw": "v1.5.0-rc.1", diff --git a/snapshot/docs/partials/guide/filter.html b/snapshot/docs/partials/guide/filter.html index 62e31db0ca..f9757e057e 100644 --- a/snapshot/docs/partials/guide/filter.html +++ b/snapshot/docs/partials/guide/filter.html @@ -20,10 +20,13 @@

Using filters in view templates

E.g. the markup {{ 1234 | number:2 }} formats the number 1234 with 2 decimal points using the number filter. The resulting value is 1,234.00.

Using filters in controllers, services, and directives

-

You can also use filters in controllers, services, and directives. For this, inject a dependency -with the name <filterName>Filter to your controller/service/directive. E.g. using the dependency -numberFilter will inject the number filter. The injected argument is a function that takes the -value to format as first argument and filter parameters starting with the second argument.

+

You can also use filters in controllers, services, and directives.

+
+For this, inject a dependency with the name <filterName>Filter into your controller/service/directive. +E.g. a filter called number is injected by using the dependency numberFilter. The injected argument +is a function that takes the value to format as first argument, and filter parameters starting with the second argument. +
+

The example below uses the filter called filter. This filter reduces arrays into sub arrays based on conditions. The filter can be applied in the view template with markup like @@ -100,14 +103,14 @@

Creating custom filters

name="index.html" language="html" type="html"> -
<div ng-controller="MyController">
  <input ng-model="greeting" type="text"><br>
  No filter: {{greeting}}<br>
  Reverse: {{greeting|reverse}}<br>
  Reverse + uppercase: {{greeting|reverse:true}}<br>
</div>
+
<div ng-controller="MyController">
  <input ng-model="greeting" type="text"><br>
  No filter: {{greeting}}<br>
  Reverse: {{greeting|reverse}}<br>
  Reverse + uppercase: {{greeting|reverse:true}}<br>
  Reverse, filtered in controller: {{filteredGreeting}}<br>
</div>
-
angular.module('myReverseFilterApp', [])
.filter('reverse', function() {
  return function(input, uppercase) {
    input = input || '';
    var out = "";
    for (var i = 0; i < input.length; i++) {
      out = input.charAt(i) + out;
    }
    // conditional based on optional argument
    if (uppercase) {
      out = out.toUpperCase();
    }
    return out;
  };
})
.controller('MyController', ['$scope', function($scope) {
  $scope.greeting = 'hello';
}]);
+
angular.module('myReverseFilterApp', [])
.filter('reverse', function() {
  return function(input, uppercase) {
    input = input || '';
    var out = "";
    for (var i = 0; i < input.length; i++) {
      out = input.charAt(i) + out;
    }
    // conditional based on optional argument
    if (uppercase) {
      out = out.toUpperCase();
    }
    return out;
  };
})
.controller('MyController', ['$scope', 'reverseFilter', function($scope, reverseFilter) {
  $scope.greeting = 'hello';
  $scope.filteredGreeting = reverseFilter($scope.greeting);
}]);
diff --git a/snapshot/docs/partials/misc/faq.html b/snapshot/docs/partials/misc/faq.html index ee802ae9e3..a71df639c2 100644 --- a/snapshot/docs/partials/misc/faq.html +++ b/snapshot/docs/partials/misc/faq.html @@ -99,7 +99,7 @@

How can I get some AngularJS schwa make our schwag will be happy to do a custom run for you, based on our existing template. By using the design they have on file, they'll waive the setup costs, and you can order any quantity you need.

Stickers -For orders of 250 stickers or more within Canada or the United States, contact Tom Witting (or anyone in sales) via email at tom@stickergiant.com, and tell him you want to order some AngularJS +For orders of 250 stickers or more within Canada or the United States, contact Tom Witting (or anyone in sales) via email at tom@stickergiant.com, and tell him you want to order some AngularJS stickers just like the ones in job #42711. You'll have to give them your own info for billing and shipping.

As long as the design stays exactly the same, StickerGiant will give you a reorder discount.

For a smaller order, or for other countries, we suggest downloading the logo artwork and making your own.

diff --git a/snapshot/docs/partials/tutorial/step_06.html b/snapshot/docs/partials/tutorial/step_06.html index b671596204..2e6af51804 100644 --- a/snapshot/docs/partials/tutorial/step_06.html +++ b/snapshot/docs/partials/tutorial/step_06.html @@ -32,7 +32,7 @@

Template

...
         <ul class="phones">
           <li ng-repeat="phone in phones | filter:query | orderBy:orderProp" class="thumbnail">
-            <a href="#/phones/{{phone.id}}" class="thumb"><img ng-src="{{phone.imageUrl}}"></a>
+            <a href="#/phones/{{phone.id}}" class="thumb"><img ng-src="{{phone.imageUrl}}" alt="{{phone.name}}"></a>
             <a href="#/phones/{{phone.id}}">{{phone.name}}</a>
             <p>{{phone.snippet}}</p>
           </li>
diff --git a/snapshot/errors.json b/snapshot/errors.json
index d7ecc88b52..bdef65ef03 100644
--- a/snapshot/errors.json
+++ b/snapshot/errors.json
@@ -1 +1 @@
-{"id":"ng","generated":"Tue Jan 19 2016 14:13:29 GMT-0800 (PST)","errors":{"ng":{"areq":"Argument '{0}' is {1}","cpta":"Can't copy! TypedArray destination cannot be mutated.","test":"no injector found for element argument to getTestability","cpws":"Can't copy! Making copies of Window or Scope instances is not supported.","btstrpd":"App Already Bootstrapped with this Element '{0}'","cpi":"Can't copy! Source and destination are identical.","badname":"hasOwnProperty is not a valid {0} name"},"$http":{"legacy":"The method `{0}` on the promise returned from `$http` has been disabled.","badreq":"Http request configuration url must be a string.  Received: {0}"},"ngRepeat":{"badident":"alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.","iexp":"Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.","dupes":"Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}","iidexp":"'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'."},"$sce":{"imatcher":"Matchers may only be \"self\", string patterns or RegExp objects","icontext":"Attempted to trust a value in invalid context. Context: {0}; Value: {1}","iwcard":"Illegal sequence *** in string matcher.  String: {0}","insecurl":"Blocked loading resource from url not allowed by $sceDelegate policy.  URL: {0}","iequirks":"Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode.  You can fix this by adding the text  to the top of your HTML document.  See http://docs.angularjs.org/api/ng.$sce for more information.","unsafe":"Attempting to use an unsafe value in a safe context.","itype":"Attempted to trust a non-string value in a content requiring a string: Context: {0}"},"ngPattern":{"noregexp":"Expected {0} to be a RegExp but was {1}. Element: {2}"},"$controller":{"ctrlfmt":"Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.","noscp":"Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`."},"$parse":{"isecfn":"Referencing Function in Angular expressions is disallowed! Expression: {0}","isecwindow":"Referencing the Window in Angular expressions is disallowed! Expression: {0}","ueoe":"Unexpected end of expression: {0}","isecdom":"Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}","lexerr":"Lexer Error: {0} at column{1} in expression [{2}].","esc":"IMPOSSIBLE","isecobj":"Referencing Object in Angular expressions is disallowed! Expression: {0}","lval":"Trying to assign a value to a non l-value","isecff":"Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}","syntax":"Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].","isecaf":"Assigning to a constructor is disallowed! Expression: {0}","isecfld":"Attempting to access a disallowed field in Angular expressions! Expression: {0}"},"orderBy":{"notarray":"Expected array but received: {0}"},"jqLite":{"offargs":"jqLite#off() does not support the `selector` argument","onargs":"jqLite#on() does not support the `selector` or `eventData` parameters","nosel":"Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element"},"$animate":{"notcsel":"Expecting class selector starting with '.' got '{0}'.","nongcls":"$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the \"{0}\" CSS class."},"$q":{"norslvr":"Expected resolverFn, got '{0}'","qcycle":"Expected promise to be resolved with value other than itself '{0}'"},"$injector":{"pget":"Provider '{0}' must define $get factory method.","cdep":"Circular dependency found: {0}","nomod":"Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.","strictdi":"{0} is not using explicit annotation and cannot be invoked in strict mode","modulerr":"Failed to instantiate module {0} due to:\n{1}","undef":"Provider '{0}' must return a value from $get factory method.","unpr":"Unknown provider: {0}","itkn":"Incorrect injection token! Expected service name as string, got {0}"},"filter":{"notarray":"Expected array but received: {0}"},"ngTransclude":{"orphan":"Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}"},"ngModel":{"nopromise":"Expected asynchronous validator to return a promise but got '{0}' instead.","nonassign":"Expression '{0}' is non-assignable. Element: {1}","datefmt":"Expected `{0}` to be a date","constexpr":"Expected constant expression for `{0}`, but saw `{1}`.","numfmt":"Expected `{0}` to be a number"},"$location":{"nostate":"History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API","ipthprfx":"Invalid url \"{0}\", missing path prefix \"{1}\".","isrcharg":"The first argument of the `$location#search()` call must be a string or an object.","nobase":"$location in HTML5 mode requires a  tag to be present!"},"$cacheFactory":{"iid":"CacheId '{0}' is already taken!"},"$interpolate":{"noconcat":"Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required.  See http://docs.angularjs.org/api/ng.$sce","interr":"Can't interpolate: {0}\n{1}","nochgmustache":"angular-message-format.js currently does not allow you to use custom start and end symbols for interpolation.","reqcomma":"Expected a comma after the keyword “{0}” at line {1}, column {2} of text “{3}”","untermstr":"The string beginning at line {0}, column {1} is unterminated in text “{2}”","badexpr":"Unexpected operator “{0}” at line {1}, column {2} in text. Was expecting “{3}”. Text: “{4}”","dupvalue":"The choice “{0}” is specified more than once. Duplicate key is at line {1}, column {2} in text “{3}”","unsafe":"Use of select/plural MessageFormat syntax is currently disallowed in a secure context ({0}).  At line {1}, column {2} of text “{3}”","reqother":"“other” is a required option.","reqendinterp":"Expecting end of interpolation symbol, “{0}”, at line {1}, column {2} in text “{3}”","reqarg":"Expected one of “plural” or “select” at line {0}, column {1} of text “{2}”","wantstring":"Expected the beginning of a string at line {0}, column {1} in text “{2}”","logicbug":"The messageformat parser has encountered an internal error.  Please file a github issue against the AngularJS project and provide this message text that triggers the bug.  Text: “{0}”","reqopenbrace":"The plural choice “{0}” must be followed by a message in braces at line {1}, column {2} in text “{3}”","unknarg":"Unsupported keyword “{0}” at line {0}, column {1}. Only “plural” and “select” are currently supported.  Text: “{3}”","reqendbrace":"The plural/select choice “{0}” message starting at line {1}, column {2} does not have an ending closing brace. Text “{3}”"},"ngOptions":{"iexp":"Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}"},"$rootScope":{"inprog":"{0} already in progress","infdig":"{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}"},"$compile":{"noident":"Cannot bind to controller without identifier for directive '{0}'.","selmulti":"Binding to the 'multiple' attribute is not supported. Element: {0}","ctreq":"Controller '{0}', required by directive '{1}', can't be found!","tplrt":"Template for directive '{0}' must have exactly one root element. {1}","iscp":"Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}","baddir":"Directive name '{0}' is invalid. The name should not contain leading or trailing whitespaces","noctrl":"Cannot bind to controller without directive '{0}'s controller.","multidir":"Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}","tpload":"Failed to load template: {0} (HTTP status: {1} {2})","uterdir":"Unterminated attribute, found '{0}' but no matching '{1}' found.","reqslot":"Required transclusion slot `{0}` was not filled.","nodomevents":"Interpolations for HTML DOM event attributes are disallowed.  Please use the ng- versions (such as ng-click instead of onclick) instead.","nonassign":"Expression '{0}' used with directive '{1}' is non-assignable!","noslot":"No parent directive that requires a transclusion with slot name \"{0}\". Element: {1}"},"$resource":{"badargs":"Expected up to 4 arguments [params, data, success, error], got {0} arguments","badmember":"Dotted member path \"@{0}\" is invalid.","badname":"hasOwnProperty is not a valid parameter name.","badcfg":"Error in resource configuration for action `{0}`. Expected response to contain an {1} but got an {2} (Request: {3} {4})"},"$route":{"norout":"Tried updating route when with no current route"},"linky":{"notstring":"Expected string but received: {0}"},"$sanitize":{"noinert":"Can't create an inert html document","uinput":"Failed to sanitize html because the input is unstable"}}}
\ No newline at end of file
+{"id":"ng","generated":"Wed Jan 20 2016 07:32:13 GMT-0800 (PST)","errors":{"ng":{"areq":"Argument '{0}' is {1}","cpta":"Can't copy! TypedArray destination cannot be mutated.","test":"no injector found for element argument to getTestability","cpws":"Can't copy! Making copies of Window or Scope instances is not supported.","btstrpd":"App Already Bootstrapped with this Element '{0}'","cpi":"Can't copy! Source and destination are identical.","badname":"hasOwnProperty is not a valid {0} name"},"$http":{"legacy":"The method `{0}` on the promise returned from `$http` has been disabled.","badreq":"Http request configuration url must be a string.  Received: {0}"},"ngRepeat":{"badident":"alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.","iexp":"Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.","dupes":"Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}","iidexp":"'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'."},"$sce":{"imatcher":"Matchers may only be \"self\", string patterns or RegExp objects","icontext":"Attempted to trust a value in invalid context. Context: {0}; Value: {1}","iwcard":"Illegal sequence *** in string matcher.  String: {0}","insecurl":"Blocked loading resource from url not allowed by $sceDelegate policy.  URL: {0}","iequirks":"Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode.  You can fix this by adding the text  to the top of your HTML document.  See http://docs.angularjs.org/api/ng.$sce for more information.","unsafe":"Attempting to use an unsafe value in a safe context.","itype":"Attempted to trust a non-string value in a content requiring a string: Context: {0}"},"ngPattern":{"noregexp":"Expected {0} to be a RegExp but was {1}. Element: {2}"},"$controller":{"ctrlfmt":"Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.","noscp":"Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`."},"$parse":{"isecfn":"Referencing Function in Angular expressions is disallowed! Expression: {0}","isecwindow":"Referencing the Window in Angular expressions is disallowed! Expression: {0}","ueoe":"Unexpected end of expression: {0}","isecdom":"Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}","lexerr":"Lexer Error: {0} at column{1} in expression [{2}].","esc":"IMPOSSIBLE","isecobj":"Referencing Object in Angular expressions is disallowed! Expression: {0}","lval":"Trying to assign a value to a non l-value","isecff":"Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}","syntax":"Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].","isecaf":"Assigning to a constructor is disallowed! Expression: {0}","isecfld":"Attempting to access a disallowed field in Angular expressions! Expression: {0}"},"orderBy":{"notarray":"Expected array but received: {0}"},"jqLite":{"offargs":"jqLite#off() does not support the `selector` argument","onargs":"jqLite#on() does not support the `selector` or `eventData` parameters","nosel":"Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element"},"$animate":{"notcsel":"Expecting class selector starting with '.' got '{0}'.","nongcls":"$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the \"{0}\" CSS class."},"$q":{"norslvr":"Expected resolverFn, got '{0}'","qcycle":"Expected promise to be resolved with value other than itself '{0}'"},"$injector":{"pget":"Provider '{0}' must define $get factory method.","cdep":"Circular dependency found: {0}","nomod":"Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.","strictdi":"{0} is not using explicit annotation and cannot be invoked in strict mode","modulerr":"Failed to instantiate module {0} due to:\n{1}","undef":"Provider '{0}' must return a value from $get factory method.","unpr":"Unknown provider: {0}","itkn":"Incorrect injection token! Expected service name as string, got {0}"},"filter":{"notarray":"Expected array but received: {0}"},"ngTransclude":{"orphan":"Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}"},"ngModel":{"nopromise":"Expected asynchronous validator to return a promise but got '{0}' instead.","nonassign":"Expression '{0}' is non-assignable. Element: {1}","datefmt":"Expected `{0}` to be a date","constexpr":"Expected constant expression for `{0}`, but saw `{1}`.","numfmt":"Expected `{0}` to be a number"},"$location":{"nostate":"History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API","ipthprfx":"Invalid url \"{0}\", missing path prefix \"{1}\".","isrcharg":"The first argument of the `$location#search()` call must be a string or an object.","nobase":"$location in HTML5 mode requires a  tag to be present!"},"$cacheFactory":{"iid":"CacheId '{0}' is already taken!"},"$interpolate":{"noconcat":"Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required.  See http://docs.angularjs.org/api/ng.$sce","interr":"Can't interpolate: {0}\n{1}","nochgmustache":"angular-message-format.js currently does not allow you to use custom start and end symbols for interpolation.","reqcomma":"Expected a comma after the keyword “{0}” at line {1}, column {2} of text “{3}”","untermstr":"The string beginning at line {0}, column {1} is unterminated in text “{2}”","badexpr":"Unexpected operator “{0}” at line {1}, column {2} in text. Was expecting “{3}”. Text: “{4}”","dupvalue":"The choice “{0}” is specified more than once. Duplicate key is at line {1}, column {2} in text “{3}”","unsafe":"Use of select/plural MessageFormat syntax is currently disallowed in a secure context ({0}).  At line {1}, column {2} of text “{3}”","reqother":"“other” is a required option.","reqendinterp":"Expecting end of interpolation symbol, “{0}”, at line {1}, column {2} in text “{3}”","reqarg":"Expected one of “plural” or “select” at line {0}, column {1} of text “{2}”","wantstring":"Expected the beginning of a string at line {0}, column {1} in text “{2}”","logicbug":"The messageformat parser has encountered an internal error.  Please file a github issue against the AngularJS project and provide this message text that triggers the bug.  Text: “{0}”","reqopenbrace":"The plural choice “{0}” must be followed by a message in braces at line {1}, column {2} in text “{3}”","unknarg":"Unsupported keyword “{0}” at line {0}, column {1}. Only “plural” and “select” are currently supported.  Text: “{3}”","reqendbrace":"The plural/select choice “{0}” message starting at line {1}, column {2} does not have an ending closing brace. Text “{3}”"},"ngOptions":{"iexp":"Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}"},"$rootScope":{"inprog":"{0} already in progress","infdig":"{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}"},"$compile":{"noident":"Cannot bind to controller without identifier for directive '{0}'.","selmulti":"Binding to the 'multiple' attribute is not supported. Element: {0}","ctreq":"Controller '{0}', required by directive '{1}', can't be found!","tplrt":"Template for directive '{0}' must have exactly one root element. {1}","iscp":"Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}","baddir":"Directive name '{0}' is invalid. The name should not contain leading or trailing whitespaces","noctrl":"Cannot bind to controller without directive '{0}'s controller.","multidir":"Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}","tpload":"Failed to load template: {0} (HTTP status: {1} {2})","uterdir":"Unterminated attribute, found '{0}' but no matching '{1}' found.","reqslot":"Required transclusion slot `{0}` was not filled.","nodomevents":"Interpolations for HTML DOM event attributes are disallowed.  Please use the ng- versions (such as ng-click instead of onclick) instead.","nonassign":"Expression '{0}' used with directive '{1}' is non-assignable!","noslot":"No parent directive that requires a transclusion with slot name \"{0}\". Element: {1}"},"$resource":{"badargs":"Expected up to 4 arguments [params, data, success, error], got {0} arguments","badmember":"Dotted member path \"@{0}\" is invalid.","badname":"hasOwnProperty is not a valid parameter name.","badcfg":"Error in resource configuration for action `{0}`. Expected response to contain an {1} but got an {2} (Request: {3} {4})"},"$route":{"norout":"Tried updating route when with no current route"},"linky":{"notstring":"Expected string but received: {0}"},"$sanitize":{"noinert":"Can't create an inert html document","uinput":"Failed to sanitize html because the input is unstable"}}}
\ No newline at end of file
diff --git a/snapshot/version.json b/snapshot/version.json
index b31e86f939..e884c63cca 100644
--- a/snapshot/version.json
+++ b/snapshot/version.json
@@ -1 +1 @@
-{"raw":"v1.5.0-rc.1","major":1,"minor":5,"patch":0,"prerelease":["build","4525"],"build":"sha.2cb1989","version":"1.5.0-build.4525","codeName":"snapshot","isSnapshot":true,"full":"1.5.0-build.4525+sha.2cb1989","branch":"master","cdn":{"raw":"v1.5.0-rc.1","major":1,"minor":5,"patch":0,"prerelease":["rc",1],"build":[],"version":"1.5.0-rc.1","docsUrl":"http://code.angularjs.org/1.5.0-rc.1/docs"}}
\ No newline at end of file
+{"raw":"v1.5.0-rc.1","major":1,"minor":5,"patch":0,"prerelease":["build","4527"],"build":"sha.bd59335","version":"1.5.0-build.4527","codeName":"snapshot","isSnapshot":true,"full":"1.5.0-build.4527+sha.bd59335","branch":"master","cdn":{"raw":"v1.5.0-rc.1","major":1,"minor":5,"patch":0,"prerelease":["rc",1],"build":[],"version":"1.5.0-rc.1","docsUrl":"http://code.angularjs.org/1.5.0-rc.1/docs"}}
\ No newline at end of file
diff --git a/snapshot/version.txt b/snapshot/version.txt
index cee495c907..d910ba6253 100644
--- a/snapshot/version.txt
+++ b/snapshot/version.txt
@@ -1 +1 @@
-1.5.0-build.4525+sha.2cb1989
\ No newline at end of file
+1.5.0-build.4527+sha.bd59335
\ No newline at end of file