Switch branches/tags
Nothing to show
Find file Copy path
2075 lines (1634 sloc) 172 KB

1.3.3 "germany" (2017-02-22)

Bug Fixes

  • tap: Exclude contentEditable from preventDefault on tapMouseDown(). (5ac4549)

  • history fix Back Button issue (980126d)

1.3.2 "france" (2016-10-24)

Bug Fixes

  • ion-option-button: ion-option button now works with nested lists. (6e622a4)

  • ion-content height ion-content height is now adjusted upon the first opening of the keyboard. (26f33970)

  • select select now works on chrome 53 and up. click is no longer simulated (417997d)

  • button button border style now configurable (80b9020)

  • pullToRefresh pull to refresh now only fires when their is a scrollview (160629c)

  • scrollComplete onScrollComplete event added to ionScroll (34d663e)

  • scroll fixed memory leak with event listeners (491e256)

  • modal-open modal-open class is now removed when no modals are in the dom (6ed7253)

<a name"1.3.1">

1.3.1 "el salvador" (2016-05-12)

Bug Fixes

  • Status Bar: Moved status tap handler to after platform ready fires. (947d9296)

  • Loader: make the loader service return a promise instead of the deprecated object, updated docs (0e94f914, closes #3717)

  • Tabs: fixs as issue with tabs without icons (28e99594, closes #6292)

  • Navigation: revert previous navigation fix (efb9bd) and added a different fix for the infinite loop issue. Wrote additional tests to verify the test. (e31498c4)

  • Life Cycle: Life cycle events fire reliably on correct scope, closed many issues (d6373335)

  • Slides: changed the way looped/duplicates slides work, added documentation (44d5a0f8, closes #6305)

  • Header:

    • ion-nav-title will fill up available space (677d2d4c, closes #4661)
    • subheader visiblity fix, remove display as block (01ab8b03, closes #3055)
    • set correct title bar height (6a5e6bc4, closes #4965)
  • Footer: fix a typo in footer bar styles using balanced class (99f987fc, closes #6426)

  • Pull-to-refresh: Better performance via changing translateY to 3d (c7e61e4d, closes #6360)

  • Scss: made variables for button-default-border and button-default-active-bordermade variables (7da8739f, closes #5576)

  • Content: documentation update (#62fdd636, closes #5813)

Breaking Changes

  • Scss: changed variable being passed to buttons for styling borders. By default, the variable passed is $button-default-border instead of $button-primary-border (for example). The border property was previously ignoring the parameter and was hard-coded to transparent (7da8739f

<a name"1.3.0">

1.3.0 "delhi" (2016-04-21)


  • angular: Upgraded to Angular 1.5

Bug Fixes

  • button-bar: borders back. (24b5b860, closes #4917)
  • exposeWhenAside: resize handler is trigger when screen dimensions change (b5968ca8)
  • item: fix padding for items (56bb89e1, closes #5534)
  • karma:
    • adding checks to prevent null pointers in clean-up phase (964a7d5f)
    • updated tests for 1.5, removed unnecessary 'clean-up' tests since angular-mocks (e5d9d14b)
  • modal: Don't show click-block-div unnecessarily on remove() (b0c89ef7)
  • navigation:
    • preventing swipe-to-go-back when side-menu is open on the right (9c614d31)
    • swipe-to-go-back on a per-view basis in iOS issue #4574 (c375b6e9)
  • nullRef: nullify reference to the destroyed slider (prevent it from calling update()) (7e9d52c2)
  • scroll: remove overflow scroll hidden for iOS (aec6598d)
  • slides: resolves data-update issue on duplicate slides #5739 (db8304d2)
  • tabs:
    • tabs are now styled directly via dom manipulations (fbae1aba)
    • tabs-color-active works with tabs-striped (237d79b7)
    • prevent flicker when changing tabs on android (a7620d21)
  • navigation: remove ionicHistory infinite loop when linking to other tabs #3932 (efb9bdf)

<a name"1.2.4">

1.2.4 "Copenhagen" (2016-01-03)

Bug Fixes

  • tabs overflow scroll with child not view. Fixes #4891 (1f2178f)

<a name"1.2.3">

1.2.3 "Copenhagen" (2016-01-02)


  • input: focus on iOS (aef490b)
  • scroll: js scrolling for iOS for now (d9b35f4)

<a name"1.2.2"> ###1.2.2 "Barcelona" (2015-12-31)


  • drag: fix #4022 and #3695 (d3d2c14)
  • fonts: iOS 9 fonts now for safari (760b70d)
  • gestures: revert fix for dragging. Fixes #3695 (1b0d3dd)
  • keyboard:
    • check for slide first before update. Fixes #4870 (074976f)
    • fix blank spot. Fixes #4849 and #4645 (4ad6021)
    • better scroll to. #4849 #4645 (29a33d7)
  • loading: don't delay visible hide. #4858 (f69b94d)
  • menu:
    • remove flicker on native scroll. Fixes #4869 (1ec38ac)
    • better scroll restrict. Fixes #4869 (fe3aeac)
    • change scroll restriction. #4869 (ebd76d5)
  • sass: add border support to mixin. Fixes #4886 (129cc97)
  • slides:
    • Fixes #4855 and #4857 (13d0fbe)
    • allow ngAnimate. Fixes #4868 (cb7d8a5)

<a name"1.2.1">

1.2.1 "amsterdam" (2015-12-17)


  • textarea: negative indent on iOS only. Fixes #4761 (cff02a5)
  • refresher: PTR in desktop. Fixes #4758 (72f2fb8)
  • slides: compile cloned nodes. Fixes #4764 (75df701)
  • Memory (ea655d6)
  • viewSwitcher: reflow issue. Fixes #4782 (d0246cf)
  • Cleanup (e49818a)
  • input: multi-input case. Fixes #4778 (ebe134b)
  • scroll: disable body scroll on iOS safari (5875ebc)
  • Revert "scroll: disable body scroll on iOS safari" (3d866a0)
  • slides: size 100% of container. Fixes #4802 (ff752f7)
  • Revert "update main section of bower.json with bundle" (c9bd3e8)
  • Removed text-indent. (535b96b)
  • refresher: don't use parseInt (97bb63e)
  • remove float parsing on refresher (58a80da)
  • refresher: PTR doesn't break after scrolling. Fixes #4753 (3efb33d)
  • refresher: handle pointer events (1f43278)
  • New release codenames (59c68aa)
  • Setup empty arrays before evaluating ionic.CSS (9465021)
  • Merge pull request #4815 from nikolasleblanc/master (daf71c7)
  • modal: popover and modal scroll fixes #4793 (8f00626)

<a name"1.2.0">

1.2.0 "zirconium-zeren" (2015-12-09)


  • video: add video native controls for wp8 platform (1302a23)
  • Add a broadcast for when the backdrop is shown or hidden (fee6ec2)
  • Fixed border-radius when only one button exists in a button-bar (b952bd9)
  • slidebox: removing an item breaks slidebox (f3a8537)
  • Added stacked label support for "select" (80e4154)
  • Added more specificity (d578d78)
  • Update tabs.js (ed4234e)
  • Fix for ion checkbox right alignment issue on android (0b7076d)
  • Fixed bug with classlist being null (c9c8218)
  • scrollView: reset scroll view when focusing non-keyboard element (c3faf60)
  • Center Wide Popover on larger Viewports (7b97fc2)
  • (/^(select|option)$/i).test( has been repeated 3 times in the code so I thought it'd be better to export it in its own helper function isSelectOrOption(tagName) (a017dfe)
  • performance improvement for exposeAsideWhen directive that also fixes issue #3600 (8187367)
  • Update _scaffolding.scss (ffa7320)
  • Make ionRefresher promise-friendly. (be2a6b8)
  • Using parseFloat() to calculate percentage to yield more precise result. (44e1190)
  • Added mousewheel support for touch devices (fca7ea0)
  • Fix e.detail.keyboardHeight undefined error in keyboardAttach directive (a3924cb)
  • don't throw exceptions if the view is destroyed (ca3d897)
  • extension to support multiple selection (bb4e142)
  • Add missing "if" (491d68b)
  • Stopped ion-spinner Android animation script from running indefinitely. (9f341a8)
  • Using apply() with the popup object as this in onTap() (e4cc22b)
  • Added two more choices of column size: 40% and 60% (ebfd4f3)
  • Fixes #4070 because Windows Phone reports itself as being "Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 735) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537" which means Android is picked before "windows phone" (76189f4)
  • scroll: prevent 'cannot read from undefined' exception (3fa971b)
  • add default link color (e951390)
  • Add ionicTabs#showBar() method to set/get whether the tabs bar is shown (7dd620d)
  • Prevent the popover options to be overwritten (fix #3173) (44460d7)
  • Prevent click events from firing twice on Windows Phone (tested on 8.1 and 10). (bfd01a7)
  • Was failing on !WindowsPhone. Forgot this is a function :) (a538035)
  • update main section of bower.json with bundle (bfd9f08)
  • viewSwitcher: use ionic.requestAnimationFrame (0218858)
  • Added check for a nativeMaxScroll of 0 in getNativeMaxScroll (3cf3e37)
  • Hide Firefox's focus outline on range inputs (dff98d8)
  • Fix sliderview on Windows Phone devices (80f8b2d)
  • Prevent slide from moving to a new index if the slidebox is not setup yet (fix #4378) (6061b0a)
  • fix on-hold for Some devices (bd5eb73)
  • .prompt() now supports defaultText options; see (2d1b2e0)
  • .prompt() now supports maxLength option. (a942153)
  • fix for inputPlaceholder quotes per (56e9706)
  • cleanup of inputType to use consistent template substitution instead of raw string interpolation; see (d3fad60)
  • cleanup of extra whitespace which caused no-multi-spaces errors in circleci (afd0efe)
  • view: proper view lifecycle for caching (06ef682)
  • .pane[hide-nav-bar=true] .has-tabs-top now respects $tabs-height variable (2bb014d)
  • Merge pull request #4705 from gregallensworth/master (240cd30)
  • Merge pull request #4717 from PhilSwanson/master (7535d83)
  • Moved test icons to ios (ca95dac)
  • Merge pull request #4703 from Elyahou/fix-on-hold (60f9403)
  • Merge pull request #4688 from ewdl/fix-view-slider (1fd48a0)
  • Merge pull request #4681 from ljkumo/master (936252d)
  • Merge pull request #4680 from sbatezat/patch-1 (cf4faf4)
  • Merge pull request #4679 from FLHerne/patch-1 (ff3d9bd)
  • Merge pull request #4670 from ReadmeCritic/master (2e3dd94)
  • Merge pull request #4654 from andreialecu/patch-1 (a3e9f6d)
  • Merge pull request #4653 from laidig/patch-1 (118ba8a)
  • Merge pull request #4638 from CasperTech/master (38a9157)
  • Merge pull request #4667 from zanemcca/fixNativeInfinite (4d8069b)
  • Merge pull request #4622 from ewdl/fix-popover-override (dbd0d24)
  • Merge pull request #4613 from ewdl/feature-tabs (27fc24e)
  • Let tapIgnoreEvent check data-tap-disabled. (3119679)
  • button: raise default button styles. Fixes #4722 (32d81a9)
  • Merge pull request #4582 from thuey/patch-1 (8f3ecb7)
  • Removing trailing space (65db032)
  • Merge pull request #4580 from 5im0n/fix-link-color (896c476)
  • Merge pull request #4565 from leobetosouza/master (5b6e4d6)
  • Merge pull request #4541 from PhilHannent/master (a03b51b)
  • Merge pull request #4501 from florentsuc/patch-1 (762bfa7)
  • platform: warn on lack of deviceready. Fixes #4723 (128bb78)
  • statusbar: scroll to top on statusbar native event. Fixes #4724 (37918a2)
  • header: no scroll top on element tap, only native. Fixes #4466 (cfa8042)
  • scroll: Native scrolling default. Closes #4725 (11946ef)
  • Merge pull request #4446 from Niades/popups-scope (f7eca57)
  • Merge pull request #4400 from lazamar/patch-1 (3930e0e)
  • Merge pull request #4382 from yalishizhude/master (08e36d8)
  • use window instead of this (8fc6e57)
  • use window instead of this (e899ad5)
  • Merge pull request #4364 from ptarjan/patch-1 (5e26d4b)
  • Merge pull request #4348 from lewisl9029/touch-devices-mousewheel (ce4ca93)
  • Merge pull request #4357 from jtomaszewski/patch-1 (d884ecb)
  • Merge pull request #4317 from 5amfung/precise_percent_calc (5eeb668)
  • Merge pull request #4222 from beauby/refresher-promise (d1f31a4)
  • textarea: iOS text indent. Closes #2307 (62fa27e)
  • Merge pull request #4215 from gaetansenn/patch-1 (0adf975)
  • poly: fallback for no transition keys. Closes #4191 (7dc27df)
  • Merge pull request #4163 from msalcala11/exposeAsideWhenFix (622d702)
  • Merge pull request #4159 from emonidi/tap.js-optimization (b368671)
  • Added hasBouncing alternative to ionSlideBox. (f617a9d)
  • Slidebox bouncing (465d98c)
  • Merge pull request #4073 from justinwp/patch-1 (0d8560e)
  • Merge pull request #4093 from Sionarch/ionspinner-android-fix (6f1d20a)
  • Merge pull request #4017 from adam-back/patch-1 (3857ec9)
  • Merge pull request #4007 from ajcrites/reset-scrollview-checkbox-focus (c951e1f)
  • Merge pull request #3958 from maverix/master (2f1f478)
  • Merge pull request #3933 from ClemMakesApps/fix-android-ion-checkbox-right (30c8659)
  • Merge pull request #3911 from EddyF/patch-1 (3d4c5d1)
  • Merge pull request #3869 from mkaziz/master (889ea34)
  • Merge pull request #3842 from labrute974/patch-1 (7199e09)
  • Merge pull request #3657 from FabianAlbrecht/fix-border-radius (482dba9)
  • Merge pull request #3527 from edparsons/backdrop-broadcast (9956de4)
  • Merge branch '4screens-master' (eecf43f)
  • security: enable W10 urls. Fixes #4604 (4dd80d9)
  • sideMenu: exposeAside both left and right. Fixes #2328 (a98f88b)
  • styles: apply active state of emotional colors to complex styles (9c37863)
  • wp10: Hide scrollbar automatically. #4728 (fe7eea0)
  • Some new text examples for fun 🎅 (efbc7f1)
  • sideMenu: Restrict drag to bounds even w/ back views. Fixes #4438 (54e466c)
  • forms: remove need for . #4735 (6383933)
  • ion-label (1a91bb2)
  • focus (1011019)
  • 🎅 (41e4212)
  • 🎅 (5eb747c)
  • edge: wrong pointercancel event (0522863)
  • range: tap and range styles for Edge. Fixes #3853 (4ee8678)
  • link: remove default hover color. #4580 (4ef9be5)
  • slide-box: New slide box. (a8f2366)
  • Fix dynamic slides (7fe987c)
  • Access slider (551f64c)
  • Cage platformready check for web view (9271aa1)
  • buttons: more v2 like buttons (21e54be)
  • scrollView: statusTap overflow. Fixes #4743 (853453c)
  • scroll: native scrolling for scroll view (c5b48cb)

<a name"1.1.1">

1.1.1 "yttrium-yeti" (2015-11-05)

Bug Fixes

  • browser: ios9 location patch (e5b85df)
  • ionContent: fix scroll sizing with native scrolling and pull-to-refresh (3ab9eaf)
  • ionRadio: fix adjacent selectors that break in iOS9 (11232d4)
  • ionSlideBox: prevent $animate from cause a delay when removing slides and slide-pagers (98ccc9d)
  • ios9: uiwebview patch (c2822e7)
  • popup: make popups play nice with other async popups (6101d4b)


  • meteor: add Meteor support (af1bfef)
  • navView: support ControllerAs syntax for ion-nav-views (a665d1d)

<a name"1.1.0">

1.1.0 "xenon-xerus" (2015-08-13)

Bug Fixes

  • location: Fix preventDefault logic in ionic.Gesture.gestures.Drag (e10b5d2)
  • menuClose: Prevent clicking on current page link in sidemenu from disorganizing page hierarchy. Fixes #4132) (a379bfd)
  • select: prevent words from being cut off (e8724e1)
  • tabs: adjust tabs and content when hiding the nav bar (7e4fb15)


  • angular: Upgrade to Angular 1.4 (355bf6a)
  • clearCache: clearCache returns a promise (336c388)

<a name"1.0.1">

1.0.1 "vanadium-vaquita" (2015-06-30)

Bug Fixes

  • button: fix line-height for button-small (753fcde)
  • ionicConfig:
    • remove tel from images (d256870
    • add content scheme to whitelist (8572f38
  • gestures: only preventDefault on direction if direction supplied (56ab0f2)
  • history: maintain nextViewOptions with resolves (cef6708)
  • item: set complex ionItems to use scss var (5aaa94a)
  • infiniteScroll: reduce memory used by inactive spinner (32da5cd)
  • loading: reduce memory used by inactive spinner (f622817)
  • popup: close highest overlay (bcfe210)
  • scroll: keyboard support for native scroll views (a293a23)
  • scrollView: fix memory leak in JS scrolling cleanup (d6431a7)
  • tabs:
    • make icons and titles stay in the same position (d9b3b80)
    • fix icons and titles position (f76aedb)
  • tap: stop cloning date inputs (d3c3e8c)
  • viewSwitcher: broadcast view transition events in a consistent order (f78b1b3)


  • gestures: add dragstart and dragend gestures (7679690)
  • sideMenu: add menu open and close events (dbd5881)
  • spinner: allow ionSpinner default to be set by ionicConfigProvider (cf338cf)

<a name"1.0.0">

1.0.0 "uranium-unicorn" (2015-05-12)

Bug Fixes

  • config: add support for blob image protocol. (d684d62a, closes #3645)
  • fonts: IE does not support query string cache busting in font URLs (bd72a33)
  • infiniteScroll: prevent error on infinite scroll complete with native scrolling (86565e24, closes #3682)
  • ionicConfig: allow using tel for hrefs (db730f16, closes #3647)
  • modal: Prevent scroll=false content from overlapping modal content. (4e74ead5, closes #3648)
  • scrolling: Collection repeat requires JS scrolling (0557c305)

<a name"1.0.0-rc.5">

1.0.0-rc.5 "tungsten-turkey" (2015-04-27)

Bug Fixes

  • backButton:
  • goBack:
    • specify how many views to go back (63a0834d)
  • input:
    • prevent input labels from being pushed left on focus (a6d9d4c8, closes #1778)
  • ionicConfig:
    • Whitelist Cordova Windows Phone style protocols (19296c85)
    • Chrome regression no longer allows integer transition duration times (34ed2d0f)
  • keyboard:
  • ngShow: WP fix for ngShow. (c64e0bae, closes #3498)
  • range:
  • scroll:
    • set ms-viewport to prevent IE "squish" effect (26361d65)
    • Windows Phone default to native scrolling (c40e36c1)* slidebox:
    • prevent read only property error on assigning of length. (08956b29, closes #3589)
  • spinners:
    • WP doesn't support smil. default wp spinner to spinner that uses timing func. (e5930c0c, closes #3480)

<a name"1.0.0-rc.4">

1.0.0-rc.4 "sulfur-suricate" (2015-04-20)

Bug Fixes

  • backdrop:
    • dont allow counter to go below 0 (fdca73a5)
  • clearCache:
  • collectionRepeat:
    • when array is empty, dont use heightGetter/widthGetter (bd4723c9, closes #3440)
  • content:
    • make on-scroll-complete pass (scrollLeft, scrollTop) locals (10552634, closes #2464)
  • exposeAsideWhen:
  • ionDeleteButton:
    • stop clicks from bubbling up to main item (0421596b)
  • ionItem:
  • infiniteScroll:
    • prevent checkbounds when infinitescroll completes when page is cached. (6ee9e26b, closes #2694)
  • keyboard:
    • use keyboardGetHeight not ionic.keyboard.height (04da0fc7)
    • overflow: visible on scroll view when keyboard is open (edb62c2c)
  • modal:
    • fix race conditions and memory leaks (008df7b9)
    • clean up event listeners when hiding modal (218605f0)
  • popup:
    • fix race conditions and memory leaks (e86b331d, closes #2815)
    • make sure backdrop is always released (31de853f, closes #3524)
    • synchronously add/remove popups from stack, no matter the animation state (9baf219e, closes #3131)
  • refresher:
    • fix pull to refresh with native scrolling on kitkat (71e89715)
  • scroll:
    • rename 'scroll.resize' to 'scroll-resize' for jQuery's sake (e19863c3, closes #3384)
  • slidebox:
  • spinners:
    • spiral spinners have correct gradient tail color when using emotion colors. (7db6c7ff, closes #3328)
  • swipeBack:
  • $ionicSlideBoxDelegate:
    • add speed parameter to next()/previous() (b3c086eb, closes #3493)

<a name"1.0.0-rc.3">

1.0.0-rc.3 "radium-raccoon" (2015-04-13)

Bug Fixes

  • slidebox:
  • fonts
    • Add support for the Segoe UI font for Windows Phone support (3690dbf)
  • nav:
  • backButton:
  • navbar:
  • collectionRepeat:
    • in grid, use height of tallest item in row (40bedd7d, closes #3387)
    • properly resize when aside is exposed (6c08b780, closes #3352)
    • compute width when height is not given (1e36afc6, closes #3357)
  • modal:
  • ionItem:
  • keyboard:
    • keyboard performance improvements (70576d9)

1.0.0-rc.2 "palladium-platypus" (2015-03-30)

Bug Fixes

  • activator: adds activated class to buttons in nav-bar and header-bars (36df5086, closes #3348)
  • keyboard: enable keyboard accessory bar more quickly after focus (7bf1207a, closes #3113)
  • popover: fix popover position on Internet Explorer (893fcbec, closes #2861)
  • popup: prevent scrollbars from showing on desktop unecessarily. (b8df44d4, closes #3204)
  • scrolling: Prevent gestures from breaking native scrolling (e917cae3)


  • scrolling: add native scroll delegate (bda4de1c)

1.0.0-rc.1 "osmium-ostrich" (2015-03-16)

Bug Fixes

  • initialize $scope.$tabSelected when nested tabs selected. (ec7bf202)
  • activator: check classList exists (0bed91f3, closes #3295)
  • barSubheader: fix border-bottom on android (b2841190)
  • collectionRepeat:
    • properly delete items when setting size to 0 (3dc6ab6a, closes #3299)
    • fix a dom problem with margins and position:relative (83a20c61, closes #3277)
    • fix problem with option & delete buttons (2c2662fe, closes #3280)
    • make it work performantly with exposeAsideWhen (4f35d8e6, closes #3244)
    • fix data change while page disconnected, computed dimensions while no data (4325025d, closes #3240, #3238)
  • keyboard: shrink scrollView on date and select focus on iOS (4636cb0e)
  • platform: revert b1f94da27e265ca32698b86785073d53208e6679, #3279 (1c7b2883, closes #3175)
  • scrollView: remove bottom margin on scroll content. (4f9d6fe7, closes #2910)
  • subHeader: removes borders on android subheaders (ebe32265, closes #3265)
  • tabs: correct tab leaving lifecycle events (082f30e6, closes #2869)


  • collectionRepeat: resize on $ionicScrollDelegate.resize() (a3014830, closes #3292)

1.0.0-rc.0 "neodymium-newt" (2015-03-05)

Bug Fixes

  • $ionicLoading: make hideOnStateChange work if loader is delayed (878c8170, closes #3022)
  • angular: .finally syntax error in Android 2.3 (1f2d900e)
  • collectionRepeat:
    • restore scrollView's normal behavior when repeater is destroyed (864b46aa, closes #2078)
    • resize scrollView when data changes (88aebad3, closes #2523)
    • properly resize, but only when scrollView size actually changes (b7a09689, closes #2935, #3054)
    • don't rerender on window resize when view is cached (4f0598dd, closes #2677)
    • properly display sibling elements after a collection-repeat (7913ee0f)
    • Properly calcuate list height and show ion-infinite-scroll. (83899681, closes #2376)
  • css: add height to item-image and fix nav-bar (c1ef4718)
  • exposeAsideWhen: trigger a resize event when the aside is exposed (27298e92, closes #3054)
  • gestures: improve drag/swipe response (a5881eae, closes #1729, #2674)
  • history: index check before forwardViewId = null (2885258d)
  • iframe: add .iframe-wrapper for scrollable iframe (b7cd6cb1, closes #1151)
  • input: Fix inline input flexbox model to prevent input from being cut off (d68ecc16)
  • ionItem: properly hide option buttons on scroll in collection-repeat (7fec8480, closes #1811, #2804)
  • ionLoadingConfig: fix default loading template (9749bb97)
  • ionReorder: stop icon from hiding on reorder (c5b35eee)
  • listView:
  • loading: options.hideOnStateChange: also hide on stateChangeError (3d128535, closes #3051)
  • navBar:
  • navButtons: fixed case where buttons would display under each other in 4.4 (eef1d32b)
  • popover:
  • scroll:
    • hide the scrollbar on desktop so it matches content size of mobile (0e04f391)
    • cleanup native scroll listeners only if activated (df6dcb96)
    • fix IE mousewheel scroll (be094336)
    • show scrollbars during native scrolling (ecfd0e07)
    • do not click when scroll decelerating (e8a70f37, closes #1438, #2223, #2665)
  • scrollDelegate: revert change that made all scroll* methods blur inputs (0145dc37, closes #2745)
  • scrollView: higher velocity threshold for sliding (93643c41)
  • sideMenu: check whether drag is enabled before dragging (acd0ff8f)
  • sidemenu: prevent scroll during menu drag (51ed1824, closes #2808)
  • styles: fix to tables in _variable.scss #2949 (9d676b0d)
  • tabs:
    • fire leaving life cycle events (9cc61ecd, closes #2869)
    • reload tab after previous clearHistory() (3628ebac, closes #2664)
    • corectly size ion-content when used with inline tabs. (65ab5f35, closes #2781)
    • correct border visibility with android style tabs (bf40b222)
  • video: prevent styles from bleeding into html video tag (7e762b9c)
  • viewSwitcher: do not finish transition from bubbled transitionend events (6fa75b7f, closes #3006, #3063)


  • actionsheet: android style/layout, iOS update (b837fb24)
  • collectionRepeat:
    • if item-width/item-height not given, compute dimensions (432c7dca)
    • add collection-buffer-size, collection-refresh-images attrs (b49444c3, closes #1742)
    • automatically set width/height style to match collection-item-{width,height} (34e350b0, closes #3034, #1806)
  • doubletap: add onDoubleTap directive (42569cca, closes #2292)
  • header: remove bottom border when tabs top (f6566726)
  • icons: svg loaders and ionicons v2.0.1 (6f50c87e)
  • infiniteScroll: upgrade infinite scrolling spinner to use new ion-spinner directive (65aa2af9)
  • ionReorder: better animations (cbe5c71c)
  • ionSlideBox: hide/show pager depending on dynamic show-pager attribute (c631a8ef)
  • modal: bg only for inset modals (5de1c126)
  • pullToRefresh: add on-pull-progress (955f4411)
  • refresher:
    • allow spinner to be none. (4afc7677, closes #2926)
    • add elastic drag to native scrolling refresher (658451cb)
    • Allow refrsher to work with native scrolling (7134114b)
  • scroll: freeze scroll on ion-option-button swipe (9a88c417, closes #2950)
  • scrolling: Allow native scrolling to be configurable, add infinite scroll support for nativ (54c27ff8)
  • spinners: add ionic color convention (2b88b4fe, closes #3077)
  • swipe: iOS swipe to go back (8ebde73d)
  • tabs: Allow disabled tab items (bffbee40)

1.0.0-beta.14 "magnesium-mongoose" (2014-12-15)


  • Cached Views:
    • Previously, as a user navigated an app, each exiting view’s element and scope would be destroyed. If the same view was accessed again then the app would have to recreate the element. Views can now be cached to improve performance.
    • Now, when a view is exited, its elements are left in the DOM, and its scope is disconnected from the cycle. When navigating to a view which is already cached, its scope is reconnected, and the existing element which was left in the DOM becomes the active view.
    • This also allows for scroll position of previous views to be maintained (without skippy jumps).
    • Config variables can be used to disable view caching, IE set to 0, or change the maximum number of views to cache.
    • Individual ionViews can disable caching by using the cache-view="false" attribute, or from its $stateProvider.state config.
    • Note: Views with many large images or videos should not be cached.
    • The ionNavView docs have more further documentation.
  • Navigation: Refactored for improved performance
    • Reduced DOM manipulations
    • Cached Views (see above)
    • Increased transition FPS for smoother animation
  • Angular v1.3:
    • Upgraded Ionic to work with Angular v1.3.
    • In general Ionic just works with the upgrade, but the required change was that animations in v1.3 uses promises, whereas in v1.2 animations used callbacks.
    • Check out the Angular 1.3 ng-europe presentation and Migrating from 1.2 to 1.3 for more information.


  • Platform Specific Transitions: Transitions between views now default to the transition style appropriate for each platform.
    • For example, iOS will move forward by transitioning the entering view from right to center, and the exiting view from center to left. However, Android will transition with the exiting view going from bottom to center, covering the previous view, which remains stationary.
    • Platform transitions are automatically applied by default, but config variables and custom CSS allows these defaults to be easily overridden.
  • ionNavTitle: Use the nav title directive to set custom HTML the for the header bar's title from within an ionView template. This gives each view the ability to specify its own custom title, such as an image or any HTML, rather than being text-only.
  • enable-menu-with-back-views: In many mobile apps, sidemenus are disabled on child views. The enable-menu-with-back-views attribute determines if the side menu is enabled when the back button is showing.
    • When set to false, any buttons/links with the menuToggle directive will be hidden, and the user cannot swipe to open the menu.
    • When going back to the root page of the side menu (the page without a back button visible), menuToggle buttons will show again, and menus will be re-enabled.
    • ionSideMenus docs
  • menuClose: Closes a side menu which is currently opened. Additionally, the menuClose directive will now cause transitions to not animate between views while the menu is being closed.
  • ionNavBackButton: The back button icon and text will automatically update to platform config defaults, such as adjusting to the platform back icon.
    • To take advantage of this, the ionNavBackButton directive should now be empty, IE <ion-nav-back-button></ion-nav-back-button>.
    • The back button can still be fully customized like it could before, but without any inner content it knows to style using platform configs.
    • ionNavBackButton docs
  • navBar button primary/secondary sides: Primary and secondary sides are now the recommended values for the side attribute, such as <ion-nav-buttons side="primary">.
    • Primary buttons generally map to the left side of the header, and secondary buttons are generally on the right side.
    • However, their exact locations are platform specific.
    • For example, in iOS the primary buttons are on the far left of the header, and secondary buttons are on the far right, with the header title centered between them.
    • For Android however, both groups of buttons are on the far right of the header, with the header title aligned left.
    • Recommendation is to always use primary and secondary so buttons correctly map to the side familiar to users of a platform.
    • In cases where buttons should always be on an exact side, both left and right sides are still available.
    • ionNavButtons docs
  • $ionicView Events: Now that views can be cached, controllers may only load once, which may change how you'd expect data to load.
    • New events have been added that get emitted from the view's scope: $ionicView.enter, $ionicView.leave, $ionicView.loaded.
    • These events also contain data about the view, such as the title and if the back button should show, along with transition data, such as the transition type and direction that was used.
    • ionView docs
  • Override Transition Type and Direction: As a user navigates the app, Ionic automatically applies the appropriate transition type for the platform, and the direction the user is navigating. Both can be overridden in numerous ways: config variable, view attribute, stateProvider property, or attribute on the button/link that initiated the transition.
  • navDirection: An attribute directive that sets the direction which the nav view transition should animate.
  • navTransition: An attribute directive that sets the transition type which the nav view transition should use when it animates. Using none will disable an animation.
  • $ionicConfigProvider: Configs can be changed using the $ionicConfigProvider during the configuration phase of your app. $ionicConfig can also set and get config values during the run phase and within the app itself.

Breaking Changes:

  • Animation CSS: The CSS for view transitions have changed. This is a breaking change only if Ionic apps had customized Ionic’s animation CSS. Additionally, all keyframe animations were removed since they weren't being used. (20Kb saved!)
  • $ionicPlatformDefaults: Platform config variables are no longer in the $ionicPlatformDefaults constant, but within $ionicConfigProvider.
  • navClear: The navClear directive was created to do what the new side menu enable-menu-with-back-views attribute accomplishes and has therefore been removed. Additionally, the new navTransition and navDirection directives are more useful and granular.
  • scrollView.rememberScrollPosition: This method has been removed since it is no longer needed with cached views.


  • ionView.title: The ionView directive used the title attribute, but this can cause the tooltip to show up on desktop browsers. The title attribute will still work for backwards compatibility, but we now recommend using view-title, such as <ion-view view-title=”My Title”>.
  • ionNavView animation attribute: The animation attribute can be safely removed as it is no longer used for nav views. Instead use $ionicConfig.
  • ionNavBar animation attribute: The animation attribute can be safely removed as it is no longer used for nav bars. Instead use $ionicConfig.
  • $ionicNavBarDelegate#changeTitle: To set a title you now use title(value) (with an argument). The changeTitle() method will now produce a console.warning message, but it can still be used for this version.
  • $ionicNavBarDelegate#setTitle: To set a title you now use title(value) (with an argument). The setTitle() method will now produce a console.warning message, but it can still be used for this version.
  • $ionicNavBarDelegate#getTitle: To get a title you now use the return value of title() (no argument). The getTitle() method will now produce a console.warning message, but it can still be used for this version.
  • $ionicNavBarDelegate#back: The back() method has been removed in favor of using $ionicHistory.goBack(). Additionally, $ionicGoBack() is added to the rootScope. $ionicHistory docs
  • $ionicNavBarDelegate#getPreviousTitle: The getPreviousTitle() method has been removed in favor of $ionicHistory.backTitle(). $ionicHistory docs
  • $ionicViewService: In the navigation refactoring, $ionicViewService was split up into two factories, $ionicViewSwitcher and $ionicHistory. The $ionicHistory is largely what $ionicViewService was, but now between the two there is a better separation of concerns for improved testing. $ionicHistory docs

1.0.0-beta.13 "lanthanum-leopard" (2014-09-24)

Bug Fixes

  • card: less intense box shadow (95d3f2e3)
  • click: remove native click prevent 400ms later (20d567f8, closes #2204)
  • exposeAsideWhen: disable with isEnabled=false (6f79a5e5, closes #2210)
  • history: tabs lose history after switching tabs (68de8ed9, closes #1978)
  • keyboard: android scroll stuck (74de015c)
  • loading: prevent spinners in loading view from causing reflows when hidden. (767ce6a3, closes #2013)
  • menuClose: do not close if aside exposed (b239eb9e)
  • nav: prevent flickers between views (03086ed2)
  • popup:
    • set popup head padding equal to popup body padding (b873190b)
    • fill popup width of Android 4.1-4.3 buttons (581656fd, closes #2209)
  • scroll: ensure scrollView objects exist (8883c6cc)
  • scrollView: check that element has not yet been GC'd before removing event listeners in $des (5e8250b1)
  • sideMenu:
    • Prevent is-enabled="false" from blocking current view interaction. (cedee574, closes #1973)
    • allow edge-drag-threshold for right side menus. (cb066434, closes #2081)
  • splitView: disable menu toggles on exposed aside (ed3e9e30, closes #2182)
  • tabs: fix android untyled android tab (aa7e9dd7)
  • templateCache: make sure $state is passed config options before checking what they are (cb9b81d5)
  • titles: error during quick transition changes (fe9f43d1)


  • angular:
    • upgrade to AngularJS v1.2.25 (bcfecb4f)
    • upgrade to AngularJS v1.2.24 (487e7a97)
  • cordovaEvents: $ionicPlatform.on method (046ad53b, closes #2219)
  • refresher: Improve refresher animation. Allow pulling icon rotation to be disabled. (db27fb11)

1.0.0-beta.12 "krypton-koala" (2014-09-10)

Bug Fixes

  • back button: do not animate back button transition if the title doesn't change. (d3c8a1b2, closes #1858)
  • buttons: centering icons on tag buttons. (69442d5a, closes #2074)
  • classList: error on svg elements (98629d42, closes #1795)
  • collectionRepeat:
    • always render data correctly with before/after isblings (120f99ee, closes #2025)
    • simplify item reusing process to fix rare reuse error (8c6d5f2c, closes #1777)
    • with ngHref, make href attr erase if falsy (977f6818, closes #1674)
    • rerender when $ionicScrollDelegate resizes (5e025fbb, closes #1777)
    • ignore spacing of hidden elements (ion-refresher) (9bfa3bd1, closes #1970)
  • ionContent: fix rare positioning bug when overflow-scroll is enabled (84b5e919, closes #1281)
  • item: clicks climb 5 levels looking for an item to activate, but not 6. (840c014b, closes #1921)
  • keyboard: screen.height fallback for window.innerHeight (77847f49, closes #2168)
  • loading: potential race condition with showing and hiding loading in same watch cycle (65aece2a)
  • menuContent: gestures do not stop_browser_behavior (df578585, closes #421)
  • platform: fullscreen method will not offset footer by 20px (b1f94da2)
  • popup:
    • fix alignment, backdrop not fading out (6d859f48)
    • only override prompt input if template includes HTML (044fac4d)
  • refresher: finish animating before changing icon, hide when not in use (c336e8ed)
  • reorder:
    • reorder drag threshold are equal for going up and down. (6f5b6c24, closes #1394)
    • item click handlers dont fire when tapping on reorder icon (cc18a64b)
  • scroll:
  • scrollView: resolve memory leaks with holding element references (c5966bba)
  • sideMenu:


  • $ionicBody: service to simplify body ele interaction (2c3f1c9f)
  • $ionicConfigProvider: add $ionicConfigProvider (2643cffc)
  • $ionicScrollDelegate: expose zoomBy and zoomTo methods (029f8f33, closes #1977)
  • ionContent: add locking option (af229072, closes #2034)
  • ionScroll: add locking option (cc8f31d8, closes #2034)
  • popover: support popping from bottom or top of screen (5d06c4ae, closes #1986)
  • scroll-content: add 1px padding-top (e5b5906c)
  • splitView: expose side menu on large viewport (b69aa548)
  • templateCache: automatically cache template files to prevent flicker on page navigation and imp (944a92b0)

1.0.0-beta.11 "indium-iguana" (2014-08-06)

Bug Fixes

  • actionSheet: run $apply when closing actionSheet with back button (d3ed66e0)
  • backdrop: disable tap longer after backdrop close (7faeeda0, closes #1536)
  • cards: No more double margin if inside padding container (03903239)
  • demos: fix HTML validation issue (c47fcccc)
  • forms: Normalized form styles (89999cad)
  • header: buttons do not align in Android 4.4 (06086ee9, closes #1614)
  • ionRadio: fix ng-change being reported before model changes (53c437e2, closes #1741)
  • nav: Removed border on animation (a9a52f64)
  • popup: backdrop release fires with every close (ae87c66b)
  • sideMenu: remove .menu-open on destroy (f246c5aa)
  • tabs:
    • vertically center text and icons on tabs-icon-left/right (93d586de, closes #1827)
    • remove important flag from .tabs{border-bottom:none;} Fixes: 1652 (bf1c1bc9)
  • toggle: fix toggle-class attribute (6fbd1a43, closes #1851)
  • viewService: No error on clearHistory for empty history (64641b1b)


  • collectionRepeat: other children of ion-content element fit in (7ddb57e6, closes #1920, #1866, #1380)
  • popover: created popovers (c1215aa3)
  • tabs: Expand striped android style tab functionality. Closes 1694 (ddda809b)

Breaking Changes

ion-radio no longer has an isolate scope. This will break your radio only if you were relying upon the radio having an isolate scope: if you were referencing $parent.value as the ng-disabled attribute, for example.

Change your code from this:

<ion-radio ng-disabled="{{$parent.isDisabled}}"></ion-radio>

To this:

<ion-radio ng-disabled="{{isDisabled}}"></ion-radio>


1.0.0-beta.10 "hafnium-heron" (2014-07-25)

Bug Fixes

  • button: fix button overflow causing whole screen to overflow left/right (114dad8c, closes #1780)
  • collectionRepeat:
    • properly display collection repeat inside a modal (1fbd3c56)
    • patch ngSrc/ngHref to fix a bug with falsy values (208ef13d, closes #1674)
  • gesture: fix onSwipeDown (2dce7a74, closes #1810)
  • ionList: allow scrolling while reorder or delete is active (2e9d0965, closes #1703)
  • ionReorderButton: stop ngRepeat:dupes error when reordering (ba1859b3, closes #1601)
  • list:
    • make reorder/delete button animation work well on all devices (4f10a723)
    • add extra margin-bottom to the last list if the list is also a card. (306fe047, closes #1708)
  • loading:
    • stop resize flicker when showing & changing text (cb368698)
    • Prevent clicks on modal views when loading is active. (7630bd41, closes #1720)
  • nav: remove disabled-pointer-events (5b50e120, closes #1383)
  • navBar: only add default animation if there is no custom animation (cdba48f1, closes #1671)
  • scroll:
    • prevent native webkit scrollbars from showing (951a9d35)
    • anchor scroll should scroll to IDs that are multiple levels beneath the scroll v (3d0a46ef, closes #1804)
  • scrollView:
    • cloned input for keyboard-scroll now matches original (5da1ecd0, closes #1721)
    • always stay exactly within boundaries after bounce (1c789f8a, closes #1736)
  • select: prevent ion-item text from overlapping select input. (a56e647b, closes #1735)
  • sideMenu:
    • when a drag on content is disallowed, do not prevent default (ab500f2e, closes #1725)
    • when drag-content=false, allow drag-to-close (e3db0856, closes #1419)
  • sidemen: scroll false causes sidemenu content to disappear. (6b218042, closes #1485)
  • slidebox: default to not autoplay (81a7342f)
  • sliderView: "getBoundClientRect" typo (0dad2ed6)
  • tap:
    • only check classList on tap target if it has classList (5bf75321, closes #1677)
    • fire input behavior when tap/clicking file input label. (889482e0, closes #1699)
  • toggle: fix ngChange being reported before model changes (537b29d0, closes #1349, #1741)
  • view: don't affect history when inside a modal (b7f45e7c, closes #1667)


  • $ionicLoading: add $ionicLoadingConfig constant for default options (26ca840d, closes #1800)
  • checkbox: add disabled and emotion styles to ion-checkbox. and #1509 (79fb1e49, closes #1683)
  • ionModalView: ion-modal-view to wrap template instead of <div class="modal"> (ed4f2288, closes #1668)
  • ionSideMenu: add edge-drag-threshold, delegate edgeDragThreshold() (ba56bb98, closes #1570)
  • ionSlideBox: add 'auto-play' attr to optionally disable auto-play (8f808609, closes #1552)
  • tab: options 'hidden' attribute for tabs., #1673 (bb6976ad, closes #1666)

Breaking Changes

ion-toggle no longer has an isolate scope. This will break your toggle only if you were relying upon the toggle having an isolate scope: if you were referencing $parent.value as the ng-disabled attribute, for example.

Change your code from this:

To this:


  • Reordering with ion-reorder-button no longer changes the order of the items in the DOM.

This change will only break your list if you were not using the onReorder callback as described in the documentation.

Before, while reordering an element in a list Ionic would swap the elements underneath as the reordering happened. This sometimes caused errors with angular's ngRepeat directive.

Now, reordering an element in a list does not change the order of elements in the DOM. It is expected that the end developer will use the index changes given in the onReorder callback to reorder the items in the list. This is simple to do, see the examples in the ionReorderButton documentation.


1.0.0-beta.9 "gadolinium-gator" (2014-07-02)

Bug Fixes

  • collectionRepeat: fix scroll when item bigger than viewport (b2585f19, closes #1621)
  • footerBar: fixed top border position on retina displays. (f4043e67, closes #1661)
  • gestureDirectives: fix problem with event being passed in (b4b94073)
  • header: add iOS 8 support to iOS header fix. assumes all iOS will have 7 style headers. (4a2296dc, closes #1625)
  • headerBar: scroll to top (6eefee3d)
  • listItem: apply color styles to complex list items (9ff1b965)
  • menu: safari z-index fix for .menu .scroll-content (754ef461, closes #1408)
  • modal: remove iOS style header padding from inset headers in modal popups on iPad in po (e6dda6a5, closes #1605)
  • popup: if popup is taller than the window, shrink the popup body and make it scrollable (3e6ce183, closes #1679)
  • radio: suport ng-disabled. (704fe402, closes #1684)
  • scroll: safari scroll content height (96b2243f)
  • scrollController: allow tab $historyId to remember scroll (9b601b55, closes #1654)
  • scrollView: clonedInputs get placeholder text if any (f2f55199)
  • sliderView: find width properly when element is transformed (86ce4806, closes #1313)
  • tap: get containing label of deeply nested element (2e3b8546, closes #1643)

1.0.0-beta.8 "fermium-flamingo" (2014-06-16)

Bug Fixes

  • cancelAnimationFrame: polyfill in ionic.DomUtil (a0577346)
  • content: scroll=false in sidemenu hides content (53c17104, closes #1485)
  • css: reset FirefoxOS default gradients (5f1ea5f6, closes #1426)
  • headerBarView: check for null in getTextBounds (be351ce1, closes #1377)
  • tap: error when releasing outside of browser (8da9f34b, closes #1612)


  • ionicons:

1.0.0-beta.7 "einsteinium-emu" (2014-06-12)

Bug Fixes

  • $ionNavView: prevent read property 'name' of null (4831f489, closes #1587)
  • $ionicActionSheet:
    • stop memory leak due to hidden element staying in dom (b7646a56)
    • fix problems with cancel() not being called (323e2ce2, closes #1013, #1576)
  • .slide-in-right: fix leave animation being same as enter (024f51d3, closes #1610)
  • backdrop: Changed z-index for loading backdrop only. (4c700e9c, closes #1428)
  • collectionRepeat:
    • remove elements at correct time when leaving page (30a3c8e0)
    • use $rootScope when checking if digest is needed (74a46122, closes #1518)
  • firefox: Add FF 19+ style vendor prefixing ( (5286a0c4, closes #1574)
  • headerBar: More accurate scroll-to-top detection (1a7c1f1d)
  • ionItem:
    • make target attribute work properly (f5f5851b, closes #1521)
    • Pass target attributes on tags on to the actual tag. (4136db00, closes #1492)
  • ionNavBackButton: stop flicker when pressing back on ios (cec3a422)
  • ionRadio:
    • make value attribute work (5fd5e009)
    • correctly interpolate ngValue instead of compiling (948cffeb, closes #1464)
  • ionRefresher: be sure to run on-refresh with an angular digest (979f7b52, closes #1465)
  • ionScroll: let zoom work on android devices (e88659c6, closes #1440)
  • listView:
    • avoiding potential memory leak from assigning properties directly to an element (d7793463)
    • position dragged list item properly when list view's parent is offset. (afdf0ad7, closes #1583)
  • loading: backdrop higher z-index (bfce8e27)
  • modal: error message for modal show after remove (003659b6)
  • nav: make fewer z-index assumptions while animating in ios7 animation (02f5fcb7)
  • popup: focus on first input (71efd51b, closes #822)
  • radioButtons: Correcting a bug introduced by 521164db786a0b836b5b8149816f50da55c6a82a. (ead5e026, closes #1599)
  • scroll: input text selecting w/ mouse events (86e1fe9a, closes #1475)
  • tap:
    • ignoreScrollStart w/ data-tap-disabled (772459df, closes #1505)
    • cancel simulated click w/ hold events (f5bb023e)
  • test: Use HTML5 doctype on all tests., #1524 (18391589, closes #1539)


  • $ionicActionSheet: add cancelOnStateChange option, default true (087e55f3, closes #1318)
  • $ionicModal: add hardwareBackButtonClose as option, default true (9ffca1e4, closes #1397)
  • $ionicSlideBoxDelegate: add start() to resume after stop (e4ab045e, closes #1584)
  • angular: update to AngularJS v1.2.17 (89d5553d)
  • collectionRepeat: huge optimization upgrades (6af5d68d, closes #1597)
  • gestures: added gesture directives (a2dcaf13, closes #829)
  • ionScroll: add has-bouncing=true/false attribute (00c80e85, closes #1573, #1367)
  • ionTab: add class attribute to tab items (e6f79cc0)
  • ionic.Platform: add ionic.Platform.setGrade() function (05dd7b18, closes #1104)
  • itemFloatingLabel: add floating labels: 'item-floating-label' class (050b4f25, closes #1611)
  • platforms: Android and iOS Specific Styles and Transitions (c30be67f)
  • scrollView: better deceleration for scroll view on iOS (9c77089a)

Breaking Changes

  • $ionicActionSheet's default behavior is now to cancel when the app's state changes. To disable this behavior, pass cancelOnStateChange: false into $


  • $ionicActionSheet now returns a method to hide the action sheet.

Previously, it returned an object that had a show and hide method. This was undocumented, but if you used it, here is how to migrate your code:

Change your code from this:

var sheet = ${...});

To this:

var hideSheet = ${...});


1.0.0-beta.6 "darmstadtium-dingo" (2014-05-21)

Bug Fixes

  • click: fix mouseup click for ion-option-button (29ee6407)
  • collectionRepeat: fix rare NPE error on android 4.1 (94f0b5b7, closes #1292)
  • input: fix long input text adjusting left on focus (e6b5ff22, closes #1390)
  • ionContent: make content scrollable if it is a child of a non-scrollable content (488bd5c0, closes #1421)
  • ionFooterBar: properly offset content for bar-subfooter (46e33664)
  • ionReorderButton: fix onReorder not triggering an angular digest (cc46735c)
  • ionSlideBox: fix regression allowing slide past boundaries (ec5a2763, closes #1414, #1405, #1409, #1321)
  • requirejs: fix bug with requirejs & loading order of angular taps (36181091)
  • scrollView:
    • make xy scrolling work on ionScroll and ionContent (49f06f9c, closes #1462)
    • fix clonedInputs not being removed for large textareas on keyboardshow (88e41e1a, closes #1420)
    • on desktop, make mousewheel only scroll the scrollView under the mouse (3250d10d, closes #1376)
    • stop memory-leak when destroying scrollView (4a210130, closes #1096)
  • tap: select tag not working in IE (7059b818, closes #1435)


  • footer: keyboard-attach attribute directive to position footer above keyboard (09d1197a)

1.0.0-beta.5b "cadmium-camel" (2014-05-14)

Bug Fixes

  • sideMenu:
    • do not let the user scroll the whole body by dragging the menu horizontally (6e149eef)
    • fix disabled menu links (fa8aa6a8, closes #1388)


  • checkbox: right align w/ .item-checkbox-right (610e2328, closes #1290)

1.0.0-beta.5 "barium-bobcat" (2014-05-14)

Bug Fixes

  • $ionicLoading: do not flicker when showing long loading messages (90e7395e, closes #1252)
  • .slide-left-right-ios7: do not give borders to header/footer bars (30a9da19, closes #1232)
  • .tab-item: make it work with activator (1b1c234f, closes #1317)
  • CustomEvent: fix IE CustomEvent polyfill (191464c9)
  • activator: properly activate elements nested inside an item (3c15b118)
  • button: fix icon vertical alignments for IE 10 (930794cd)
  • e2e-tests: disable ionic-tap during e2e tests (636ca943, closes #1310)
  • footer: Fix placement of .bar-footer.item-input-inset (eaee564d, closes #1325)
  • header: Set a height for .bar .title (0c960b54)
  • headerBar: tap to scroll to top only on the nearest scrollview (58c97e0d, closes #1329)
  • input:
    • vertically align date input text (e5af75fa, closes #1147)
    • transparent bg for .item-input-inset input (08f0adb1)
  • ion-header-bar: when hidden, correctly offset the ion-content (efa61844, closes #1351)
  • ionCheckbox: make ng-checked and ng-change work (a006d896, closes #1349)
  • ionItem: transform to <a> tag for ui-sref (c6c1300b)
  • ionNavButtons: do not append if page is removed very quickly (24a488bb)
  • ionToggle: stop error in edge case of drag ending before raf (d108a29e)
  • ionView:
    • make it set navbar if title changes back to old value (919d4f8d, closes #1121)
    • make sure title is set correctly in edge cases (4814a63b)
  • listView: reordering upwards in a list is more responsive, fix scrolling error (df9c0747, closes #1202)
  • refresher: make arrow spin correctly (2ec01733, closes #1319)
  • scroll:
    • scroll inputs correctly with footer (373c0cd4)
    • Scrolling using pointer events (ed3ee1d0)
  • select:
  • sideMenu: Disable content interaction when menu open (76d4c083, closes #1339)
  • tap:
    • Normalize taps w/ pointer events also (1a2e501f)
    • Prevent different input focus after 300ms delay (8730e62e, closes #1370)
  • textarea: Allow scroll in textarea when focused (5f2fdfdd, closes #1280)


  • $ionicModal: allow configuration of backdropClickToClose (291d723a)
  • ionNavBackButton: make pressed state work (8d34ab28)
  • platform: added isWindowsPhone() method (08e4b3d9)
  • tap: Make TAP_RELEASE_TOLERANCE configurable (27369930)
  • touch-action: add touch-action: manipulation (40cd6f72)
  • ui-router: upgrade to angular-ui-router v0.2.10 (b9353e71, closes #941)

Breaking Changes

  • ion-checkbox no longer has an isolate scope.

This will break your checkbox only if you were relying upon the checkbox having an isolate scope: if you were referencing $parent.value as the ng-disabled attribute, for example.

Change your code from this:

<ion-checkbox ng-disabled="{{$parent.isDisabled}}"></ion-checkbox>

To this:

<ion-checkbox ng-disabled="{{isDisabled}}"></ion-checkbox>


1.0.0-beta.4 "antimony-antelope" (2014-05-07)

Bug Fixes

  • .pane: Remove overflow:hidden from .pane,.view (64f0030b)
  • .tabs-icon-*: only work on directly descendant tabs (77f26831, closes #1261)
  • bar: properly align titles if switching to view with no buttons (ade143ed, closes #1242)
  • collectionRepeat: correctly save user scroll position on back (0a640758)
  • ionItem: fix error when repeating (f370db45)
  • ionSlideBox:
    • fix disable-scroll attr, deprecate in favor of $ionicSlideBoxDelegate.enableSlide(true/false) (1bdb5e8d, closes #1113)
    • prevent NPE during drag (920dc59d, closes #1240)
  • modal: Remove modal flicker, closes #1150 (d2ebed84)
  • scrollView: recalculate size on mousewheel scroll (89a9ed15)
  • select: Select options w/ mouse events, closes #1251 (e3306293)
  • tap: input[file] clicks within ion-content, closes #1237 (05a6d7cc)
  • toggle: Right side padding for item-complex, closes #1091 (45106a6a)
  • transitions: Disable transitions on Android 2, closes #780 (9c58d47b)
  • viewport:
    • Auto update viewport tag (5f8e9040)
    • Remove height value on iOS browser (0ad10ede)


  • $ionicLoading: on android, no back button action while loading (fc8711c7, closes #1273)
  • $ionicModal: close on backdrop click on desktop/tablet (554c4398, closes #1087)
  • ionNavBar: allow navbar inside ion-view to transition whole bar (42177c3b, closes #1232)
  • sideMenu: make android back button close side menu (10103559, closes #1264)

1.0.0-beta.3 "americium" (2014-04-30)

Bug Fixes

  • $ionicModal: do not inherit has-header etc from parent scope (6c0c8350, closes #1191)
  • .pane: make pane class have overflow: hidden; fixes scrolling whole page from header/footer errors (dca87e2c, closes #1218)
  • android-2.2: use string notation for reserved 'class' keyword (3bcf06f2, closes #1228)
  • collectionRepeat: allow percent expressions (94bcbf75)
  • infiniteScroll: allow to fire if list does not fill up screen (e35b95e1)
  • ionHeaderBar: have no side effects with content in other views (7fd31b6a, closes #1095)
  • ionList: make reorder follow an offset list as it scrolls (3a68a2c9)
  • ionRadio: pass name property down to input element (9995f46b, closes #1229)
  • ionTab: make it so tabNav works with ngRepeat (288d4ac2)
  • ionView:
    • initialize hideBack/hideNav to false if undefined (5e56c2d6)
    • only $watch attributes if defined (12e5f6c1, closes #1216)
  • scrollView: stop polluting global.core (8992e7c9)


  • $ionicActionSheet: allow html binding of buttons and title (3e5b39f2, closes #1219)
  • $ionicPopup: on android, make back button close popup (b87bcb30, closes #1222)
  • $ionicSlideBoxDelegate: add enableSlide(true/false) method (e003bf18, closes #1122)

1.0.0-beta.2 "aluminum" (2014-04-28)

Bug Fixes

  • $ionicActionSheet: provide default functions for options (ba39fb00, closes #1013)
  • $ionicLoading: stop race condition with show and hide (eb1dee93, closes #1100)
  • $ionicModal: make it use jqLite#remove() (104c6420, closes #1138)
  • $ionicPopup:
    • stop race condition with show then hide (698c93fc)
    • make it work if jquery is included (21ff7547, closes #1027)
  • active: Taps/clicks now use .activated instead of .active, closes #913 (870dcd6f)
  • bar: Increased button icon font size (8847774f)
  • checkbox:
    • Remove tap highlight and fix checkbox appearance in Firefox, closes #496 (b0b446d5)
    • stretch checkbox's clickable area to full width (5238f8f3)
    • Entire row of an .item w/ a checkbox is now tappable, closes #995 (ac94bb23)
  • header: Header input too long on Android 4.2, closes #1081 (b654e02e)
  • input: Fix to hide input overlays on old Android (0e9072e4)
  • ion-scroll:
  • ionContent:
    • fix scoping with ngController (6abce8f7, closes #1155)
    • do not let child scopes inherit has-* classes (a5eb48b9, closes #924)
  • ionHeaderBar:
    • do not tapScrollToTop for inputs (5722900a, closes #1199)
    • make it align after elements properly load (d00aaa59)
  • ionInfiniteScroll:
    • remove listener on $destroy (08da6f75)
    • work properly if past horizontal boundaries (d58fff72, closes #1073)
  • ionList:
    • disable swiping of items while option buttons are shown (81676e6e)
    • do not let option button click propagate to item (a845ff34)
    • disable tap on element being edited (634b3971)
    • make reorder position work if list is offset (90da2da6)
    • show reorder/delete on item creation if list is showing (09a77299, closes #1181)
  • ionNavBar: adjust has-header if ionNavBar is hidden (41b73abf, closes #927)
  • ionNavButtons:
    • fix side="left" flicker with back button on ios (b6266889)
    • multiple ionNavButtons elements align correctly (58de2671, closes #930)
  • ionRefresher: do not animate pulling-text (5c893ab8, closes #909)
  • ionTab: make sure all tab-nav attributes are re-interpolated on change (757f1819, closes #955, #1071)
  • ionView: do not set navbar title if no title attr set (d53eab81, closes #915)
  • ionicPopup: if input exists, focus it. else, focus first button (93aa16a7, closes #1176)
  • ionicTabBar: detect if matches state in all cases (ee2b7686)
  • item:
    • Vertically align nav icon w/out flexbox to prevent android crashes, #928 (5b0f5d02)
    • Fix css overflow overrides for .item-text-wrap (04b4d771)
    • Fix delete icon alignment in .item-icon.left, closes #946 (044211de)
  • labels: Fix .input-label's width for androids w/out full flex box support, #998 (096a01c1)
  • listView: fixed active state on scroll (040af824)
  • loading: fix not hiding after two shows, always cancel delay (4216266f, closes #1130)
  • modal: Increase delay of removing .modal-open to prevent focus under modals (83fd11c5)
  • navClear:
    • only set viewOptions if click leads to state change (4dffc5f6, closes #1043)
    • be sure it runs before ngClick (4f47bf24, closes #1047)
  • popup: Backwards compatible remove popup from DOM, closes #851 (441a21c4)
  • range: Fix range being able to slide when in a side menu, closes #318 (2fbdebcd)
  • refresher: get rid of flickers except on droid-4.4 (ad671848, closes #1014)
  • scroll:
    • Allow scrolling when touchstart target is an input, #1078 (8af018b1)
    • Fix input focus when tapped, do not scroll when target is an input, closes #1020 (66ecec70)
    • Do not ignore taps if the target was an input, #997 (e6f56237)
    • Fix scroll for devices w/out dataset support, closes #976 (bfcf2650)
  • scss: make tabs,header,footer aligned right with statusbar (c2a38a6d)
  • tabs: Tab icon align within nested tabs, closes #1093 (2a6f7029)
  • tabs-item-hide: only hide tab nav items (a7eb521c)
  • tap:
    • Do not preventDefault after input focus, #1068 (a977332f)
    • Remove 300ms delay when tapping select elements (cf686548)
    • Prevent clicks from firing after scrolling, #579 (cb602b58)
    • Deactivate elements during scroll at the same time click is ignored, #997 (3ee5ea77)
    • Do not simulate a click if it was from a touchcanel event, closes #1015 (78510099)
    • Prevent multiple clicks when overriding cordova object, closes #1022 (5f3a1d21)
    • Prevent "clicking" when scrolling (f3bd258c)
    • Increate isScrolledSinceStart from 2px radius to 15px, #970 (9a49129a)


  • $ionicBackdrop: add backdrop show/hide service (730a33b9, closes #1084)
  • $ionicModal:
    • pass modal instance to modal.shown/modal.hidden events (a19e3b62, closes #1065)
    • show/hide/remove return promises for animating (39385008)
  • $ionicNavBarDelegate:
    • showBackButton returns whether bar is shown (933a555e, closes #1076)
    • showBar returns whether navbar is shown (24a415c3)
  • $ionicScrollDelegate:
    • add getScrollView(), getScrollPosition() (b5ef9313, closes #1117)
    • add scrollBy(left,top,animate) to delegate (f847c208, closes #987)
  • $ionicSideMenuDelegate:
  • avatar: Adding .item-avatar-left and deprecating .item-avatar (9bac6050)
  • collection-repeat: add repeat lsdirective for huge lists (f0a1c037)
  • grid: Added .row-baseline and .row-stretch (e0e7a83b)
  • ionCheckbox: allow ng-disabled attribute (d2e54a82, closes #939)
  • ionContent: don't wrap in a .scroll element if scroll="false" (73da93d4, closes #841)
  • ionNavBar: make back button animated (97257938, closes #1030)
  • ionSlideBox: add pager-click attribute (d6c960c2, closes #785)
  • loading: Moved loading scss to its own file and added variables, closes #984 (e3491864)
  • select: Styled select elements, both inline and as a list item (8a12f2d1)

Breaking Changes

  • $'s button onTap function has changed.

When using $, previously a button's onTap function would only result in closing the popup and resolving the promise if the onTap(event) function returned a truthy value.

Now, a button's onTap event will always close the popup and resolve the popup's promise, no matter the return value, by default. The only way to prevent the popup from closing is to call event.preventDefault().

Change your code from this:

  buttons: [{
    onTap: function(event) {
      if (!shouldClosePopup) {
        return false;

To this:

  buttons: [{
    onTap: function(event) {
      if (!shouldClosePopup) {


  • The developer should be stating exactly how an icon should show, but previously the right nav arrow icon violates this by automatically showing a right arrow when an item was an anchor or button. Instead of using the :after item selector, which was always applied by default, it uses the same markup as item-icon-right, which is easier to understand, customizable and not a hard coded default.

This change removes the :after nav icon styling, and creates a new class, icon-accessory, based off of similar CSS. The change makes a nav arrow highly customizable, allows RTL developers to easily control the arrow direction, and the accessory class is something that's reusable.

An example of right side arrow using ion-chevron-right as the icon:

<a class="item item-icon-right" href="#">
  Check mail
  <i class="icon ion-chevron-right icon-accessory"></i>


  • ionic.Platform.isCordova() has been renamed to ionic.Platform.isWebView() (5c300dd3)
  • ion-list syntax has changed in favor of simplicity & flexibility.

Relevant documentation: ionList, ionItem, ionOptionButton, ionReorderButton, ionDeleteButton, $ionicListDelegate.

To migrate, change your code from this:

<ion-list option-buttons="[{text:'hello',type:'button-positive',onTap:tap()}]"
          on-reorder="onReorder(el, startIndex, toIndex)"
  <ion-item ng-repeat="item in items">

To this:

<ion-list show-delete="shouldShowDelete"
  <ion-item ng-repeat="item in items">
    <ion-delete-button class="ion-minus-circled"
    <ion-reorder-button class="ion-navicon"
                       ng-click="onReorder(item, $fromIndex, $toIndex)">
    <ion-option-button class="button-positive" ng-click="tap()">


  • Before, if you did not have a title attribute set on your ion-view, it would transition into that view and erase the navbar's current title.

Now, if your ion-view does not have a title attribute set, the new view will be transitioned in, but there will be no title change.

If you wish to have a blank title on your new view, you must now explicitly set your ion-view's title attribute to an empty string.

To migrate your code, change from this:


To this:

<ion-view title=""></ion-view>


1.0.0-beta.1 (2014-03-25)

Bug Fixes

  • active: Updated which elements to set active class along w/ tests, closes #857 (423f9e4f)
  • badge: Badge horizontal alignment over item right side buttons, closes #826 (ded46931)
  • click:
    • Increase the ghost click prevent delay for grade C devices (001bcca4)
    • enter key submission blocked. (72ee799c, closes #819)
    • Click Events In SlideBox Fire Multiple Times, closes #808 (f8a71377)
  • domready: Fixed if firing off callbacks when DOM was already ready (a637fb4d)
  • grid: Correct responsive grid breaks for col-XX, closes #803 (8fae85e9)
  • input: Fix input label from shifting when text is too long on iOS, closes #801 (b8d4c51f)
  • ionList: only stop side menu drag if canSwipe (c653e83c, closes #709)
  • ionTab: stop browser-tooltip from appearing due to title attr (aa30faf8, closes #804)
  • item:
    • Restructure item editing css for added reusability and organization (07c824db)
    • fix avatar/thumbnail in .item-complex, and avatar misspelling (947b8d69)
  • listView:
    • send index on delete. (75107771, closes #849)
    • only allow one swipeable item open. (73b750fb, closes #763)
    • No slide drag if no hidden buttons. (4e605979, closes #847)
  • pointer: Add pointer styling to .item[ng-click], closes #858 (aa280910)
  • popup:
    • Ensure popup is usable on top of a modal, closes #838 (6ebfe776)
    • focus popup. (dddc34d8, closes #820)
  • range: Clicking Line For Range Causes Drag Button To Follow Mouse, close #779 (26c8f304)
  • reorder: Prevent scroll w/ data-prevent-scroll attr on reorder btn, closes #848 (f1ed4b00)
  • scrollView:
    • browserify issue: undefined core (cd27e1b7, closes #825)
    • pull to refresh spin back. (049aabc7, closes #774)
    • show bar with mouse wheel. (d5a69575, closes #809)
    • don't show bars if not scrolling. (cb686636, closes #805)
  • tabs: Renamed .tab-item active state from .active to .tab-item-active, closes #866 (24160aa0)
  • tap:
    • Trigger clicks if touch/click held for more than 250ms, closes #791 (60e45333)
    • Reset startCoordinates on touchend/mouseup, closes #874 (76a53134)
    • Remove select element from tap checking, closes #836 (3d917c83)
  • toggle: Changed tap listener to use "release", closes #882 #881 (b1a7c199)


  • $ionicLoading: implement backdrop class (57d71ed6, closes #837)
  • $ionicScrollDelegate: rememberScrollPosition, scrollToRememberedPosition (5a0efece)
  • content: automatically add/remove has-* classes to content (e94d4006, closes #619)
  • grid: Remove column offset with responsive grid breaks (73ba2a40)
  • ion-content: watch padding attribute (532d473e)
  • ionTabs: add available tabs-item-hide class (5966dbf4, closes #395)
  • ionic: remove all delegates (dbe4e390)
  • ionicNavBar: add getTitle() and getPreviousTitle() methods (215b1c1e)
  • loadingView:
    • add setContent method (366bd686, closes #732)
    • add setContent method (e5cba05e)
  • navclear: Ability to disable the next view transition and back button (f744d9eb)
  • popup: Support for programatically closing popup. (dc2b24ed, closes #854)
  • progress: Set progress element's default width to 100%, closes #872 (b9cde47d)
  • ready: Add 'platform-ready' css class to the body when the platform is ready (681a6a2e)
  • sideMenu: Added directive for simple toggling (5a89df43)

Breaking Changes / Migration Guide

  • ionTabs: tabs-type and tabs-style removed. Use classNames instead.

Relevant Documentation: ionTabs.

Old Code:

<ion-tabs tabs-type="tabs-top" tabs-style="tabs-positive" animation="slide-left-right">

New Code:

<ion-tabs class="tabs-top tabs-positive slide-left-right">

  • ionHeaderBar, ionFooterBar: remove type, title, left-buttons, right-buttons.

Relevant Documentation: ionHeaderBar, ionFooterBar.

Old Code:

<ion-header-bar type="bar-positive"

New Code:

<ion-header-bar class="bar-positive">
  <div class="buttons">
    <button class="button" ng-click="leftButtonTap()">
      Left Button
  <h1 class="title">{{someTitle}}</h>
  <div class="buttons">
    <button class="button" ng-click="rightButtonTap()">
      Right Button
  • ionNavBar, ionView: Remove left-buttons, right-buttons, type, animation, back-button-* attributes from ionNavBar. Remove left-buttons, right-buttons from ionView.

Additionally, all 'viewState.*' events have been removed. Use $ionicNavBarDelegate.

Relevant Documentation: ionNavBar, ionView, ionNavBackButton (new), ionNavButtons (new).

Old Code:

<ion-nav-bar type="bar-positive"
  <ion-view left-buttons="leftButtons"

New Code:

<ion-nav-bar class="bar-positive slide-left-right">
  <ion-nav-back-button class="button-icon ion-arrow-left-c">
  <ion-view title="someTitle">

    <ion-nav-buttons side="left">
      <button class="button" ng-click="leftButtonTap()">
        Left Button
    <ion-nav-buttons side="right">
      <button class="button" ng-click="rightButtonTap()">
        Right Button

  • ionSideMenuContent: is now an element directive.

Relevant documentation: ionSideMenus, ionSideMenuContent, ionSideMenu.

Old Code:

  <ion-pane ion-side-menu-content>

New Code:


0.9.27 "Salamander" (2014-03-15)

Bug Fixes

  • actionsheet:
    • Use transition instead of animation for backdrop, fix for Android 2.3 (c91622b7)
    • Dismiss actionsheet when tapping backdrop, closes #733 (668c646f)
    • Fix slide-up animation, closes #713 (44b31e18)
  • backbutton: Allow only one back button listener to run per click, closes #693 (a491f22c)
  • badge:
    • Vertical align a badge in an item-divider, closes #707 (cb5510c1)
    • Update badge alignment in tab items, closes #694 (c4eed02f)
  • button:
    • Correct vertical alignment of header right buttons, closes #704 (438f5fba)
    • Tweak vertical alignment of button icons, closes #739 (7ec0605e)
  • checkbox: Fix checkmark in Android 2.3 (717148d9)
  • colors: Update all #4A87EE colors to use $positive color, closes #731 (d113ddfa)
  • footer: Show footers within tab content, closes #728 (9c5772f3)
  • history: Separate histories and views, clear other views in clearHistory(), closes #724 (c99427aa)
  • input: Correct vertical alignment of inputs and their labels, closes #799 (6547ca60)
  • ionTabs: do not pre-transclude; stops error on compile (ecfdbaa6, closes #730)
  • item:
    • Fix badge moving to new line when text is too long, closes #551 (4d366710)
    • Fix item-icon-left / right animating Ionicon not centered, closes #670 (11a4338d)
  • list: Drag to expose list option buttons, closes #701 (25650005)
  • modal:
    • Do not apply the same modal animation to all of its children, closes #683 (9cff5d03)
    • Fix removing modal from DOM on .remove(), closes #755 (c4ca7a85)
    • Improve slide-up/down animations, remove flickers (b593cf1b)
  • navView: _getView renamed to _getViewById, closes #736 (78206d0e)
  • platform: Fix Platform.showStatusBar so it can be used multiple times, closes #702 (a6c47cd3)
  • sideMenu:
    • Not snapping on close on certain conditions #795 (a5899918)
    • Fix flashing when closing right side menu, closes #556 (a0d60d52)
    • Close side-menu if open and content tapped, closes #648 (0c5c6751)
  • sideMenuController: sticking issue #738 (ea04e393)
  • sidemenu: Side menu always needs to have translate3d applied, closes #710 (16ac2ff1)
  • tap:
    • Do not trigger a click if the element was scrolled after touchstart/mousedown (98e7e1aa)
    • Do not detect taps for input[type=file], closes #652 (6f2d6e7c)
  • toggle: Fix toggle handle on Android 2.3 (72f2e840)


  • active: Removing use of :active in favor of .active for more control of active state (baa04cde)
  • animation: Add right to left animations, and their reverse, for RTL support, closes #643 (4628b9fb)
  • ionInfiniteScroll:
    • allow configuration of icon and text through icon and text attributes (5f2c32ea)
  • ionRefresher: allow custom text & icons through pulling-text, pulling-icon, refreshing-text, refreshing-icon attributes. (573df56d, closes #760)
  • modal:
    • On larger displays modals will be inset and centered, not full width/height, clo (ba2a40c8)
    • Create a modal backdrop wrapper w/ internal modal directive, closes #605 (7d076bd5)
  • popup: Added popup support (a30b0b7d)
  • toggle: Added dragging support to toggle switches (cc15a5b4)

Breaking Changes

  • on-refresh and on-refresh-opening are no longer on the ion-content directive. They are on the ion-refresher. In addition, on-refresh-opening has been renamed to on-pulling.

Change your code from this:

<ion-content on-refresh="onRefresh()"

To this:

  <ion-refresher on-refresh="onRefresh()"


  • on-infinite-scroll and infinite-scroll-distance are no longer attributes on the ion-content directive. They are on the ion-infinite-scroll element.

Chang your code from this:

<ion-content on-infinite-scroll="onInfiniteScroll()"

To this:

  <ion-infinite-scroll on-infinite="onInfiniteScroll()"

ionHeaderBar's title attribute is now interpolated.

Change this code: <ion-header-bar title="myTitleVar"></ion-header-bar>

To this code: <ion-header-bar title="{{myTitleVar}}"></ion-header-bar> (a8e1524c) * ionicSlideBox#getPos has been renamed to ionicSlideBox#currentIndex.

ionicSlideBox#numSlides has been renamed to ionicSlideBox#slidesCount. (1dd55276)

0.9.26 "Rabbit" (2014-02-26)

Bug Fixes

  • actionsheet: Actionsheet in modal has pointer-events enabled, closes #660 (1503cc72)
  • click: event.preventDefault() when setting focus() on an input, closes 583 (fc8ab4b8)
  • ionContent:
    • Update scss for ion-infinite-scroll element (788df524)
    • Use new name to find ion-infinite-scroll element (1702f5c9)
  • ionPrefix: disableRegisterByTagName updated w/ ion- prefix for correct view history (2494b5f9)
  • ionSideMenu: use manual transclude instead of ngTransclude (991d3cfd, closes #666)
  • ionTabs: cleanup and fix many issues (0f1b6f47, closes #597)
  • ionicScrollDelegate:
    • do not error if no scrollTop/Left values (9e942f89, closes #659
  • item: degrade .item right arrows by grade for low end devices (3a69bb34)
  • loading: make showDelay option work correctly (7281e2ab, closes #562)
  • modal:
    • Fix modal animation for firefox, closes #671 (0033c880)
  • navBar:
    • animations, hide back button, no flicker (465ea769, closes #653)
  • platform: Update to check all platforms, closes #604 (fcd0fa73)
  • sideMenu: remove translate3d when not needed, close #636 (07092f00)
  • slideBox: make does-continue attribute work continuously (f6ec6a3c, closes #575)
  • tabs:
    • Double tapping a tab would set the wrong view history, closes #656 (f0faae16)
  • text-rendering: Disable text-rendering:optimizeLegibility for low end devices (10289466)
  • thumbnail: Correctly apply thumbnail style to item directive, closes #509 (977c1cc6)
  • transform: Polyfill style.transform to work w/ non-webkit (52671c18)


  • grade: Set grade in body class depending on platform performance (b69b40c8)
  • ionContent: use child scope instead of isolate scope (49e0dac9, closes #555)
  • ionInfiniteScroll: use event system (7b0716c2, closes #661)
  • ionNavAnimation: <a href="#/page" ion-nav-animation="slide-in-up"> (8354d42b)
  • item: Auto right-arrow for complex list items w/ ng-click/href, closes #472 (327a6866) (110ff9f4, closes #243)
  • sass: All variables now have !default assigned, closes #631 (53af2c7a)
  • scrollbar: Do not use rgba background for scrollbar on grade-b and c devices (805c35c1)
  • sideMenu:
    • Degrade .menu-content box-shadow w/ platform grade for animation performance (d2a0780b)

Breaking Changes

  • The binding for ionInfiniteScroll has changed, as well as how you finish it.

If you had this code before:

<ion-content on-infinite-scroll="doSomething"></ion-content>
function MyCtrl($scope) {
  $scope.doSomething = function(scrollDoneCallback) {

Now, your code should look like this:

<ion-content on-infinite-scroll="doSomething()"></ion-content>
function MyCtrl($scope) {
  $scope.doSomething = function() {

0.9.25 "Quokka" (2014-02-19)

Bug Fixes

  • anchorScroll: find offset of nested elements correctly (17cc0408, closes #618)
  • click: event.preventDefault() when setting focus() on an input, closes 583 (fc8ab4b8)
  • ionicLoading: make showDelay default to 0 (was 2000) (0d3718cc)
  • ionicScrollDelegate: tapScrollToTop won't fire for button tap (70d95249, closes #557)
  • loading: make showDelay option work correctly (7281e2ab, closes #562)
  • modal: do not click buttons underneath modal (9bc928f0)
  • navBar: animations work properly (749cd382)
  • scrollView:
    • allow contenteditable element to be pressed normally (39ad3e0b, closes #421)
    • fix error from checking device before ready (a5d96473)
    • cancel scrollTop every time hash is set (e1b6fd4f)
    • do not stop scrolling if stopped beyond boundaries (1aef593f)
  • tabs: broadcast tab.shown/tab.hidden to only child scopes (69fda4e5)


  • angular: Update to Angular v1.2.12, closes #600 (97f4f6ea)
  • button: Increase hit area size of a button (c168b489)
  • event: Created stopEvent directive to use for certain ng-click cases, closes #550 (8b308a17)
  • ionic: prefix all directives with ion- (2c39a214)
  • modal:
    • add .isShown() method to modal instances (e106457e, closes #320)
    • $broadcast 'modal.shown/hidden/removed' from parent scope (110ff9f4, closes #243)
  • navBar: allow expression in type. <nav-bar type="{{myType}}"> (5470d77a, closes #599)
  • sideMenu: allow and watch attrs width & is-enabled (bfefc69f)

Breaking Changes

  • All directives are now prefixed with ion-.

For any directive you use, add the ionic prefix.

For example, change this HTML:

  <tab title="home" href="/tab/home">

To this HTML:

  <ion-tab title="home" href="/tab/home">


0.9.24 "Peleguin" (2014-02-12)

Bug Fixes

  • android: when keyboard comes up, ensure input is in view (9327ac71, closes #314)
  • backButton:
    • able to hide back button if any back button attr set in navBar, closes #564 (74a05a03)
    • Do not show back button if no attributes set, closes #549 (2d39418d)
  • browser: on first hash-set, dont set scrollTop (1c4d4a8b)
  • buttonIcon:
    • fix vertical-align in safari, closes #554 (6acba8da)
    • float left icon-left, closes #515 (38420c81)
  • click: Clicks firing twice, closes #573 (2132d292)
  • header: Header icon button css fix for Safari, closes #576 (801d2d7b)
  • ionicScrollDelegate: trigger resize before scrolling to top/bottom (ea289b81, closes #522)
  • list: css: don't make last .list on page have margin-bottom (fb5a0d4c)
  • listButtons: Update list button sizes, closes #478 (91652112)
  • navBar: Remove duplicate back button arrows, closes #547 (4808e80d)
  • refresher: make refresher css not create gap at end of list (79387a4e)
  • scroll: <scroll> is now registered with $ionicScrollDelegate (2c7ce763)
  • scroll-view: css: make it take up only 100% height (d2f9e94b)
  • scrollView:
    • start scroll again if it stops beyond boundaries (eed6b19b)
    • nested scrollViews now work independently (4cc4a18c, closes #278)
  • sideMenuContent: make dragContent default to true (61a280bd)


  • $ionicScrollDelegate:
    • add scrollTo(left,top,animate) to delegate (c119498d)
    • allow anchorScroll to animate with param (36691bba)
    • add .anchorScroll() function (c2bbd9e9)
  • domUtil: add getPositionInParent function (a970f0bd)
  • grid: Added classes, variables and mixins for responsive grid options (1cdb999e)
  • ionic: remove angular-sanitize (ngSanitize) as dependency (e7556233)
  • list: reordering scrolls page, reordering performance better (7f4b28d9, closes #521)
  • sideMenuContent: watch drag-content attribute (7f9bfb5a)
  • tabs:
    • allow html in tab title attribute (0facb120, closes #528)
    • allow tab badge-style attribute to set badge class (b11e0f51)
  • toggle:
    • Disable toggle w/ ng-disabled, closes #541 (2eab747d)
    • allow ngDisabled binding (0fe44867)

0.9.23 "Alpha Oxen" (2014-02-05)

  • Android back button correctly goes back a view or closes the app
  • CustomEvent polyfill improvements for Android
  • Fix tab icon alignments
  • Fix $ionicPlatform.ready()
  • Fire off ionic.Platform.ready() callbacks for both Cordova and non-cordova
  • Created ionic.Platform.exitApp();
  • Add major and minor platform version numbers in body css
  • Removed dist folder from git
  • Created release folder to hold the latest release
  • Automate bulding the nightly folder in the CDN
  • Clicking tab item takes user to root/home of the tab
  • Add tab badges with badge attribute
  • Remember the previous scroll of a page when going back to it

Breaking Changes

  • bower install ionic: release files are now located in the release folder, not dist.

0.9.22 "Alpha Narwhal" (2014-01-30)

  • Tap polyfill overhaul to remove 300ms delay when firing a click
  • Android click firing twice fixes
  • Fixes with the tap polyfill for directives using ng-click
  • Upgrade to Angular v1.2.10
  • Reduce default button height

0.9.21 "Alpha Maine Coon" (2014-01-24)

  • Toggle directive now includes .item.item-toggle wrapper
  • Toggle/Checkbox/Radio implements ng-model/ng-value/ng-change
  • Ionicons v1.4.2, icons now using :before pseudo
  • Button and header size updates
  • Android "click" event firing twice fixes
  • Refactor platform ready event listeners
  • Refactor navView directive
  • Created ionic.Platform.fullscreen() and .showStatusBar()
  • Update to Angular v1.2.8
  • Disable pointer-events during transitions
  • Remove ngTouch from angular.modules
  • Remove angular-touch.js and angular-route.js references

0.9.20 "Alpha Lynx" (2014-01-14)

  • Improved transitions between views
  • Fixed hide-nav-bar/hide-back-button view attributes
  • Removed title attributes from DOM
  • Remove nav title if the entering view doesn't have one
  • Fix padding being added to content directive
  • Rename ionic services to use $ionic prefix

0.9.19 "Alpha Koala" (2014-01-10)

  • Created ViewState Service to track navigation history
  • Created navView directive
  • Removed navPage and navRouter directives
  • Using AngularUI Router instead of $route
  • Update examples to use $stateProvider instead $routeProvider

0.9.18 "Alpha Jaguar" (2013-12-18)

  • Slide box bug fixes
  • Fixed issues with minification
  • Small tweaks

0.9.17 "Alpha Iguana" (2013-12-16)

  • Nav bar button fixes
  • New slide box overhaul
  • New list overhaul
  • Radio button and checkbox fixes

0.9.16 "Alpha Hippo" (2013-12-12)

  • Scrollbars
  • Scroll bug fixes

0.9.15 "Alpha Giraffe" (2013-12-08)

  • Scroll view fixes
  • Radio button and checkbox fixes
  • Slide box fixes

0.9.14 "Alpha Fox" (2013-12-04)

  • Massive scroll performance improvements
  • Android fixes and perf improvements
  • Header and nav bar button fixes
  • Animation performance improvements

0.9.13 "Alpha Elephant" (2013-11-26)

  • nav router back button fixes
  • Remove back button on first route
  • Fix forward/back transition on iOS devices which lack history.state

0.9.12 "Alpha Dog" (2013-11-24)

  • Fixed some overflow scrolling issues.

0.9.11 "Alpha Cat Dog" (2013-11-23)

0.9.10 "Alpha Cat" (2013-11-23)