Changelog History
Page 21
-
v0.9.5 Changes
November 25, 2010📄 Docs
- 📄 99% of the content from the angular wiki is now in the docs
Api
- ➕ added
angular.Array.limitTo
to make it easy to select first or last few items of an array
-
v0.9.4 Changes
November 18, 2010📄 Docs
- 📄 searchable docs
- 💻 UI improvements
- 📄 we now have ~85% of the wiki docs migrated to ng docs
- ⚡️ some but not all docs were updated along the way
Api
- 👍 ng:include now supports
onload
attribute (commit cc749760)
Misc
- 👍 Better error handling - compilation exception now contain stack trace (commit b2d63ac4)
-
v0.9.3 Changes
November 10, 2010📄 Docs
- 📄 prettier docs app with syntax highlighting for examples, etc
- ➕ added documentation, examples and scenario tests for many more apis including:
- all directives
- all formatters
- all validators
- some widgets
Api
- date filter now accepts strings that angular.String.toDate can convert to Date objects
- 👍 angular.String.toDate supports ISO8061 formatted strings with all time fractions being optional
- ng:repeat now exposes $position with values set to 'first', 'middle' or 'last'
- 0️⃣ ng:switch now supports ng:switch-default as fallback switch option
💥 Breaking changes
- 👍 we now support ISO 8601 extended format datetime strings (YYYY-MM-DDTHH:mm:ss.SSSZ) as defined
in EcmaScript 5 throughout AngularJS. This means that the following apis switched from
YYYY-MM-DDTHH:mm:ssZ to YYYY-MM-DDTHH:mm:ss.SSSZ (note the added millis) when representing dates:
- angular.Date.toString
- angular.String.fromDate
- JSON serialization and deserialization (used by json filter, $xhr and $resource)
- ✂ removed SSN validator. It's unlikely that most people will need it and if they do, it can be added simple RegExp validator.
-
v0.9.2 Changes
November 03, 2010📄 Docs
- 📚 created documentation framework based on jsdoc syntax (commit 659af29a)
- jsdoc parser
- template generator
- json generator
- angular doc viewer app
- scenario runner for all example code
- 📚 documentation for all angular filters (commits 1fe7e3a1 & 1ba8c2a33)
- docs
- example code
- scenario tests for example code
✅ Testability
Scenario Runner
- binding DSL in Scenario can now match bindings without specifying filters
- ✅ dsl statements now accept a label argument to make test output more readable (issue #94)
- dsl element() statement now implements most of the jQuery API (issue #106)
- 🆕 new browser() dsl statement for getting info about the emulated browser running the app (issue #109)
- scenario runner is now compatible with IE8 (issue #93)
- scenario runner checks if URL would return a non-success status code (issue #100)
- binding() DSL now accepts regular expressions
- 🆕 new textarea() scenario runner DSL for entering text into textareas
Misc
- 🛠 lots of small bugfixes
💥 Breaking changes
Scenario Runner
- 👍 navigating to about:blank is no longer supported. It results in a sandbox error
- ⚡️ navigateTo() is now browser().navigateTo(). Old code must be updated
- 🌐 file:// URLs are no longer supported for running a scenario. You must use a web server that implements HEAD
- 📚 created documentation framework based on jsdoc syntax (commit 659af29a)
-
v0.9.1 Changes
October 26, 2010🔒 Security
- ➕ added html sanitizer to fix the last few known security issues (issues #33 and #34)
API
- 🆕 new ng:submit directive for creating onSubmit handlers on forms (issue #76)
- the date filter now accepts milliseconds as well as date strings (issue #78)
- 👍 the html filter now supports 'unsafe' option to bypass html sanitization
✅ Testability
- lots of improvements related to the scenario runner (commit 40d7e66f)
Demo
- ➕ added a new demo application: Personal Log (src example/personalLog)
Chores
- ✅ lots of fixes to get all tests pass on IE
- ➕ added TzDate type to allow us to create timezone independent tests (issue #88)
💥 Breaking changes
- $cookieStore service is not globally published any more, if you use it, you must request it via $inject as any other non-global service
- html filter now sanitizes html content for XSS attacks which may result in different behavior
-
v0.9.0 Changes
October 20, 2010🔒 Security
- angular.fromJson not safer (issue #57)
- readString consumes invalid escapes (issue #56)
- 👉 use new Function instead of eval (issue #52)
Speed
- css cleanup + inline all css and images in the main js (issue #64)
✅ Testability
- 🎉 initial version of the built-in end-to-end scenario runner (issues #50, #67, #70)
API
- 👍 allow ng:controller nesting (issue #39)
- 🆕 new built-in date format filter (issue #45)
- ⚡️ $location needs method you call on updates (issue #32)
Chores
- 🚀 release versioning + file renaming (issue #69)
💥 Breaking changes
- ⚡️ $location.parse was replaced with $location.update
- 👍 all css and img files were inlined into the main js file, to support IE7 and older app must host angular-ie-compat.js file
Big Thanks to Our Community Contributors
- Vojta Jina
📄 [lowercase]: http://docs.angularjs.org/#!/api/angular.lowercase 📄 [uppercase]: http://docs.angularjs.org/#!/api/angular.uppercase 📄 [isDate]: http://docs.angularjs.org/#!/api/angular.isDate 📄 [scope]: http://docs.angularjs.org/#!/api/angular.scope 📄 [compile]: http://docs.angularjs.org/#!/api/angular.compile 📄 [element]: http://docs.angularjs.org/#!/api/angular.element 📄 [widget]: http://docs.angularjs.org/#!/api/angular.widget 📄 [ng:repeat]: http://docs.angularjs.org/#!/api/angular.widget.@ng:repeat 📄 [ng:view]: http://docs.angularjs.org/#!/api/angular.widget.ng-view 📄 [ng:include]: http://docs.angularjs.org/#!/api/angular.widget.ng-include 📄 [ng:options]: http://docs.angularjs.org/#!/api/angular.directive.ng-options 📄 [ng:disabled]: http://docs.angularjs.org/#!/api/angular.directive.ng-disabled 📄 [ng:selected]: http://docs.angularjs.org/#!/api/angular.directive.ng-selected 📄 [ng:checked]: http://docs.angularjs.org/#!/api/angular.directive.ng-checked 📄 [ng:multiple]: http://docs.angularjs.org/#!/api/angular.directive.ng-multiple 📄 [ng:readonly]: http://docs.angularjs.org/#!/api/angular.directive.ng-readonly 📄 [ng:show]: http://docs.angularjs.org/#!/api/angular.directive.ng-show 📄 [ng:hide]: http://docs.angularjs.org/#!/api/angular.directive.ng-hide 📄 [ng:class]: http://docs.angularjs.org/#!/api/angular.directive.ng-class 📄 [ng:src]: http://docs.angularjs.org/#!/api/angular.directive.ng-src 📄 [ng:href]: http://docs.angularjs.org/#!/api/angular.directive.ng-href 💅 [ng:style]: http://docs.angularjs.org/#!/api/angular.directive.ng-style 📄 [$defer]: http://docs.angularjs.org/#!/api/angular.module.ng.$defer 📄 [$cookies]: http://docs.angularjs.org/#!/api/angular.module.ng.$cookies 📄 [$xhr]: http://docs.angularjs.org/#!/api/angular.module.ng.$xhr 📄 [$xhr.cache]: http://docs.angularjs.org/#!/api/angular.module.ng.$xhr.cache 📄 [$resource]: http://docs.angularjs.org/#!/api/angular.module.ng.$resource 📄 [$route]: http://docs.angularjs.org/#!/api/angular.module.ng.$route 📄 [$orderBy]: http://docs.angularjs.org/#!/api/angular.Array.orderBy 📄 [date]: http://docs.angularjs.org/#!/api/angular.filter.date 📄 [number]: http://docs.angularjs.org/#!/api/angular.filter.number 📄 [currency]: http://docs.angularjs.org/#!/api/angular.filter.currency 📄 [directive]: http://docs.angularjs.org/#!/api/angular.directive 📄 [ng:autobind]: http://docs.angularjs.org/#!/api/angular.directive.ng-autobind 📄 [guide.di]: http://docs.angularjs.org/#!/guide/dev_guide.di 📄 [downloading]: http://docs.angularjs.org/#!/misc/downloading 📄 [contribute]: http://docs.angularjs.org/#!/misc/contribute 📄 [jqLite]: http://docs.angularjs.org/#!/api/angular.element 📄 [angular.version]: http://docs.angularjs.org/#!/api/angular.version
📄 [i18n]: http://docs-next.angularjs.org/#!/guide/dev_guide.i18n 📄 [ng:pluralize]: http://docs-next.angularjs.org/#!/api/angular.widget.ng-pluralize 📄 [ng:form]: http://docs-next.angularjs.org/api/angular.widget.form 📄 [ng:cloak]: http://docs-next.angularjs.org/#!/api/angular.directive.ng-cloak 📄 [$on]: http://docs-next.angularjs.org/#!/api/angular.scope.$on 📄 [$emit]: http://docs-next.angularjs.org/#!/api/angular.scope.$emit 📄 [$broadcast]: http://docs-next.angularjs.org/#!/api/angular.scope.$broadcast 📄 [$limitTo]: http://docs-next.angularjs.org/api/angular.Array.limitTo 📄 [$location]: http://docs-next.angularjs.org/api/angular.service.$location ✅ [e2e test runner]: http://docs-next.angularjs.org/guide/dev_guide.e2e-testing 📄 [$injector]: http://docs-next.angularjs.org/api/angular.module.AUTO.$injector 📄 [$http]: http://docs-next.angularjs.org/api/angular.module.ng.$http 📄 [$httpBackend]: http://docs-next.angularjs.org/api/angular.module.ng.$httpBackend ✅ [unit-testing $httpBackend]: http://docs-next.angularjs.org/api/angular.module.ngMock.$httpBackend ✅ [e2e-testing $httpBackend]: http://docs-next.angularjs.org/api/angular.module.ngMockE2E.$httpBackend 📄 [$q]: http://docs-next.angularjs.org/api/angular.module.ng.$q 📄 [angular.bootstrap]: http://docs-next.angularjs.org/api/angular.bootstrap 📄 [$anchorScroll]: http://docs-next.angularjs.org/api/angular.module.ng.$anchorScroll 📄 [$cacheFactory]: http://docs-next.angularjs.org/api/angular.module.ng.$cacheFactory 📄 [bootstrapping]: http://docs-next.angularjs.org/guide/bootstrap 📄 [angular.copy]: http://docs-next.angularjs.org/api/angular.copy 📄 [ng:app]: http://docs-next.angularjs.org/api/angular.directive.ng-app 📄 [$compile]: http://docs-next.angularjs.org/api/angular.module.ng.$compile 📄 [$filterProvider]: http://docs-next.angularjs.org/api/angular.module.ng.$filterProvider 📄 [angular.Module]: http://docs-next.angularjs.org/api/angular.Module 📄 [angular.module]: http://docs-next.angularjs.org/api/angular.module 📄 [filter]: http://docs-next.angularjs.org/api/angular.module.ng.$filter.filter 📄 [limitTo]: http://docs-next.angularjs.org/api/angular.module.ng.$filter.limitTo 📄 [orderBy]: http://docs-next.angularjs.org/api/angular.module.ng.$filter.orderBy 💻 [$browser.defer.flush]: http://docs-next.angularjs.org/api/angular.module.ngMock.$browser#defer.flush 🤡 [inject]: http://docs-next.angularjs.org/api/angular.mock.inject 🤡 [module]: http://docs-next.angularjs.org/api/angular.mock.module 📄 [guide2.di]: http://docs-next.angularjs.org/guide/dev_guide.di 📄 [jqLite2]: http://docs.angularjs.org/#!/api/angular.element