Skip to content

Releases: ionic-team/ionic-framework

2.0.0-rc.6

24 Jan 20:14
Compare
Choose a tag to compare

2.0.0-rc.6 (2017-01-24)

Updating to 2.0.0-rc.6

  1. Update the framework:

    npm install --save --save-exact [email protected]
    
  2. Change the import for ionicons in your theme/variables.scss file from this:

    @import "ionicons";
    

    to

    @import "ionic.ionicons";
    

    See the conference app for an example. This fixes a bug with ionicons getting styled incorrectly.

Bug Fixes

  • alert: input missing id attribute from input options (6da9eb6), closes #9457
  • alert: unhandled promise exception (ee2268f)
  • checkbox: set disabled state from FormControl (b44ff41)
  • content: unsubscribe from viewCtrl observables after content ins… (#10050) (3a718de), closes #9593 #10045
  • datetime: set disabled state from FormControl (99c493e)
  • gestures: drag events are debounced (23a70e1)
  • input: pass disabled down to input when it is set from form (5844a83), closes #9834
  • input: pass readonly from ion-input down to native input (f9a576e), closes #6408
  • input: show clear-input on inputs with ngModel/formControlName (7a6ba2d), closes #9077
  • item-sliding: don't error or allow swipes with no options (421b7da), closes #9914
  • modal: overlay-zindex is not changed in back direction (fba1596), closes #9409
  • nav: swipe back after getRootNav().push (eaa6248), fixes #9558 (#9767)
  • nav-pop: add catch for unhandled promise exception (b995ca8)
  • nav-push: add catch for unhandled promise exception (8c4fd56)
  • platform: detect the orientation correctly (8840124)
  • range: set disabled state from FormControl (8e64a28)
  • select: set disabled state from FormControl (40e7eb2)
  • slides: allow auto to be passed (e56028e), closes #10000 #10037
  • tabs: ionChange event is dispatched after the switch (ba9e7b3)
  • tap: allow document to be tap polyfilled (9168bc1), closes #9726
  • toggle: set disabled state from FormControl (0aad835)

Features

  • radio: add disabled to radio-group and support disabled formcontrol (3e9427b), closes #9998
  • slides: add option for paginationBulletRender (21667c6), closes #10002
  • slides: add swiper controller (#9983) (f499496)
  • slides: expose more options (#9992) (2d26edb), closes #9988

2.0.0

25 Jan 16:29
Compare
Choose a tag to compare

2.0.0 (2017-01-25)

Enjoy! 🎉

2.0.0-rc.5

11 Jan 16:34
Compare
Choose a tag to compare

2.0.0-rc.5 (2017-01-11)

Updating to 2.0.0-rc.5

  1. Update to the latest version of the Ionic CLI:
npm uninstall -g ionic
npm install -g ionic
  1. Update your package.json to match the following dependencies, remove existing node_modules directory, and then run npm install:
"dependencies": {
    "@angular/common": "2.2.1",
    "@angular/compiler": "2.2.1",
    "@angular/compiler-cli": "2.2.1",
    "@angular/core": "2.2.1",
    "@angular/forms": "2.2.1",
    "@angular/http": "2.2.1",
    "@angular/platform-browser": "2.2.1",
    "@angular/platform-browser-dynamic": "2.2.1",
    "@angular/platform-server": "2.2.1",
    "@ionic/storage": "1.1.7",
    "ionic-angular": "2.0.0-rc.5",
    "ionic-native": "2.2.11",
    "ionicons": "3.0.0",
    "rxjs": "5.0.0-beta.12",
    "zone.js": "0.6.26",
    "sw-toolbox": "3.4.0"
  },
  "devDependencies": {
    "@ionic/app-scripts": "1.0.0",
    "typescript": "2.0.9"
  }

Note: please ensure you are using the exact TypeScript and Angular versions listed above. There have been issues with the latest versions.

What’s changed?

Internal refactor completed in order to improve tree shaking and dead code removal. The public API, with the exception of the slides component, has stayed the same. However, internally many changes were required so bundlers could better exclude modules which should not be bundled. Ultimately most changes resorted to removing references to window or document, or a module that referenced one of those.

What’s new?

Service Worker Toolbox (sw-toolbox) is now built in to the starters and conference app. This allows you to customize your service worker using a high level API instead of using the raw service worker API. Our out of the box configuration will give your app a good, network independent experience but you can easily customize this to fit your app’s unique use cases.

BREAKING CHANGES

Inputs

As part of the refactor to improve tree shaking the TextArea has been merged into the TextInput class. This means that if you are importing the TextArea class you will need to change this to be TextInput.

Slides

ion-slides was refactored to remove the external dependencies, and rewritten in TypeScript/ES6 modules to again improve tree shaking abilities. In order to work with tree shaking, the options attribute had to be removed. See the Slides API Documentation for usage information.

Bug Fixes

  • clickblock: add NavOptions.minClickBlockDuration (8ca9797)
  • datetime: enable custom day values (#9708) (acba3c0), closes #7190 #7190
  • input: fix the text jumping for stacked/floating inputs on iOS (877fcf1), closes #9605
  • input: only add padding right if it has clear input (717cada), closes #9865
  • input: remove click events from disabled inputs (#9676) (22ba043), closes #9070
  • list: add border to last item in MD list (#9679) (64346bd), closes #9619
  • overlay: don't call to dismiss pages if the view is an overlay (8b25798)
  • platform: only set isPortrait when the width/height is set (e9adab0)
  • scroll: handle low duration in scrollTo (14eb2fd)
  • show-hide-when: remove whitespaces from conditions before check phase (#9573) (cd342c2)
  • tabs: current tab still active if selected tab does not have a root (f09c300), closes #9392 #9811 #9392

2.0.0-rc.4

15 Dec 15:34
Compare
Choose a tag to compare

2.0.0-rc.4 (2016-12-15)

Updating to 2.0.0-rc.4

  1. Update the Ionic CLI to the latest version:
npm uninstall -g ionic
npm install -g ionic
  1. Update the following dependencies in your package.json file:
"dependencies": {
  "@angular/common": "2.2.1",
  "@angular/compiler": "2.2.1",
  "@angular/compiler-cli": "2.2.1",
  "@angular/core": "2.2.1",
  "@angular/forms": "2.2.1",
  "@angular/http": "2.2.1",
  "@angular/platform-browser": "2.2.1",
  "@angular/platform-browser-dynamic": "2.2.1",
  "@angular/platform-server": "2.2.1",
  "@ionic/storage": "1.1.7",
  "ionic-angular": "2.0.0-rc.4",
  "ionic-native": "2.2.11",
  "ionicons": "3.0.0",
  "rxjs": "5.0.0-beta.12",
  "zone.js": "0.6.26"
},
"devDependencies": {
  "@ionic/app-scripts": "0.0.47",
  "typescript": "2.0.9"
}
  1. A major version of @ionic/app-scripts was recently
    released. Please review the changelog
    for the details on the minor breaking changes to the release:
    https://github.com/driftyco/ionic-app-scripts/blob/master/CHANGELOG.md

Bug Fixes

  • action-sheet: set border bottom of last button to transparent (ffdd8f4)
  • activator: cancel remove .activated timeout (9510a2b)
  • alert: fix alert input focusing and keyboard (29a56c4)
  • alert: close keyboard when alert leaves (f354d91), closes #8185
  • animation: improve menu and go back swipe (4be47bd)
  • app: go back navigation can close menus (8de253a)
  • app: navPop() can go back inside modals (2ac3b4a), closes #7611
  • app: navPop() does not go to previous tab (eebb062)
  • app-root: async disable-scroll is cancelled properly (177a089)
  • avatar: make border-radius 50% so it is always circular (e84f2e2)
  • backdrop: remove click cursor when the backdrop is not tappable (06938b6)
  • clickblock: clickblock applies longer (e0d876e)
  • components: set true/false inputs to booleans (a796786), closes #9391
  • components: export ClickBlock (6244b51)
  • content: add a new variable for calculating fixed content top/bottom (8037086)
  • content: get correct content dimensions (1d245ec)
  • content: prefix utility attributes with ion-app and the mode (abc7395), closes #8765
  • datetime: fix am/pm in format w/out minutes or seconds (95b3b38), closes #9269
  • dateTime: make sure picker-column is shown on retina screens (b17950d)
  • fab: add box shadow transition for md fab list buttons (1e2374f), closes #9557
  • fab: fab list colors (cbf59fa), closes #9225
  • fab: position fab-list correctly on IE (a0b61f2)
  • fab: set ripple color to contrast color of the fab background (0888dec)
  • fab: using as fab (0e773fa)
  • fonts: auto-set ionicons font path if not already set (7bbfb7e)
  • gesture: nativeRaf is unsafe (b63344c)
  • gesture: pass type to hammer.get() so pinch and rotate can be enabled (66afe34)
  • header: fix no-border on ios headers (d53a38e), closes #9525 #9480
  • img: ensure scroll has been initialized (39e1dce)
  • img: fix content viewable area (903473e)
  • img: move img requests out of web workers (5376318)
  • img: use img tag due to cordova limitations (4f61ea5)
  • input: add back old styles to fix input margin (e09aee4)
  • input: apply transform css prefix (eba2862)
  • input: fix input margins while scrolling (67473f2)
  • input: fix tabbing between tappable inputs (c4cf9df)
  • input: improve scroll to input and focusing (3b30497)
  • input: prevent exception when input components outside Content (e80f4cf)
  • input: stop ios from hiding keyboard on focus change (5bcd7f2)
  • input: test for null element before update (f0327a9), closes #9278
  • item: disable scroll while sliding item (c002b36)
  • item: tappable does not make ion-label pointer-event:none (4512c5c)
  • keyboard: fix keyboard tabbing context (902a767), closes #9568
  • labels: consistent label styles on iOS (b788ce6)
  • menu-toggle: move logic for css class to the menu toggle (624cb35), closes #8943
  • modal: app.navPop() can dismiss modals (5567191), closes #8692
  • modal: backdrop click catches navigation promise (e46d8d6)
  • modal: using cross mode animations (ccb6bf1), closes #9323
  • module: add ClickBlock to NgModule declarations (960399a)
  • nav: async removing for views (5ff7072)
  • nav: back button and title not aligned on baseline (d82bb01), closes #8983
  • nav: popTo() uses the new removeView API (6b3e2ed)
  • nav: prevents to remove all views in the nav stack (16bfb49), closes #9140
  • navbar: go back text (58189d2)
  • note: separate note from item so its styles will alway be applied (bf00803), closes #9173
  • picker: add color to picker-opt so the variable will style correctly (dc0659f), closes #9519
  • picker: making touchable fill all the available space (448e020)
  • picker: mark main button as strong (af7139b)
  • picker: removes unused code (44d772f)
  • picker: stop picker once it is closed (ecb8bee)
  • platform: fix window width/height calculations (4ed6b36)
  • popover: remove css contain from popover (db9f1a8)
  • ripple: disable ripple on android 4.4 with chrome (97ec20e)
  • scroll: correctly resolve promise (c6fbb9c)
  • scroll: ensure listeners have been added before removing (a237253)
  • scroll: fix content dimensions for js scrolling (...
Read more

2.0.0-rc.3

17 Nov 19:58
Compare
Choose a tag to compare

2.0.0-rc.3 (2016-11-17)

Bug Fixes

  • animation: always run before classes and functions (d9e9ece), closes #8842 #8769
  • animation: regression in _willChg() (91f5087)
  • button: fix ios buttons in colored toolbar so they don't use the default color (0e53ec3), closes #8566
  • colors: override element styling and tweak colors for card and item (ee3decc), closes #9081
  • components: add a mode agnostic css class (#9133) (025c5cc), closes #8545
  • datetime: fix min/max displayFormat and pickerFormat (c72b67d), closes #8729
  • gestures: gesture controller handled by components (32ab817), closes #9046 #9130 #9052 #7444
  • item: fix color input for item divider and list header (5e5c33a), closes #8376
  • nav: controller is initialized (beab06f)
  • nav: fixes empty stack condition (909293a)
  • nav: it is not allowed to pop all the views (0ab990c)
  • nav: returning Promise in canLeave / canEnter works as expected (5f1a862)
  • nav: transitioning state is a boolean not a timer (63d495a)
  • nav: willLeave is called before willEnter (b77b2ae), closes #9163
  • nav: zIndex in overlays (70f8a8e)
  • picker: prevents scrolling under the picker (2348d22)
  • sass: change default font path (#8811) (0940d5a)
  • sass: remove usage of colors other than primary, improve error (#8907) (eb0b05d), closes #8266
  • styles: update ios and md styles closer to native (9f7972b)
  • test: class 'Page5' incorrectly extends base class (a98284a)
  • typography: Exclude ion-item on a tags selector (#8340) (b00860b)

Features

  • export NavControllerBase for building of components similar to ion-tab (24b087c)
  • input: clearOnEdit feature. Closes #9187 (9469b4f)
  • IonicErrorHandler: custom ionic error handler provider (6b77772)
  • tappable: auto add tappable attribute for ion-item clicks (5c4838b)

Performance Improvements

  • animation: improves _progress() hot function (c44f6b6)
  • animation: optimizing hot loops (c78dc19)
  • animation: set after styles should not be recursive (3a2ff85)
  • click: increase number to find activatable elements (c8aad56), closes #9190
  • item: improve performance of sliding item (#9005) (759e3ea)
  • item: reorder is only added to the DOM if needed (dec5a0b), closes #9065
  • menu: avoid change detection when it isn't needed (#8986) (d531ec2)
  • nav: avoid running zone when it is not needed (be72d39)
  • picker: improves performance of picker and datepicker (fc2ee64)
  • picker: improves picker UX feedback (cfbc5ea)

BREAKING CHANGES

  • sass: - $fab-<mode>-in-list-background-color ->
    $fab-<mode>-list-button-background-color
  • $fab-<mode>-in-list-text-color ->
    $fab-<mode>-list-button-text-color
  • $fab-<mode>-in-list-background-color-activated ->
    $fab-<mode>-list-button-background-color-activated

2.0.0-rc.2

03 Nov 20:57
Compare
Choose a tag to compare

2.0.0-rc.2 (2016-11-03)

Bug Fixes

  • action-sheet: Improve Action Sheet styles across all the platforms (#8736) (8d2c8b6), closes #8663
  • config: Cannot read property 'canDisableScroll' of undefined in unit tests (90f9b5c)
  • content: _scrollPadding is not undefined (6484c50), closes #8844
  • cordova: add Sass variables for md and wp statusbar padding (#8788) (8921cb1), closes #8712
  • fab: only animate transform and opacity (f69e981)
  • gulp: e2e.watch works with non localhost interface (950e663)
  • input: wrong width of text-input for iOS (941e2d2), closes #7388
  • nav: adds public willLoad lifecycle event (033e1ea)
  • nav: clickblock is disabled longer (eb317d4), closes #8713
  • nav: ion-nav inside ion-content work properly (ba557ac)
  • nav: ionViewDidLoad fires before children components have been loaded (e89f3b0), closes #8449
  • nav: swipe to go back gesture (04d61ee), closes #8919 #8958 #7934
  • nav: view.id is not overridden (8b65398), closes #8794
  • nav: willLoad() does not have to be zone wrapped (17dbf69)
  • navPush: change detector exception (8b07e6c)
  • picker: fixes regression in picker but introduces new bug. (c1ba120)
  • range: fixes when step size is bigger than range (9895b86), closes #8830 #8802
  • range: range with long label renders correctly (f1f44eb)
  • refresher: only animate transform property (658c4d6)
  • sass: rename $background-color variable in our loops (2003ae4), closes #8475
  • scroll: fix scroll to top on iOS (2d165e1)
  • update to latest Angular and NGC (8eae2cb)
  • searchbar: looks good when mode is different (0c0f32d)
  • searchbar: positionElements to assign input mode fixes #8855 (cd0e19a)
  • searchbar-md-cancel: fix always hide button (316c4f3)
  • segment: update broken link ionic-team/ionic-site#777 (c66a440)
  • select: emit the ionSelect option when selecting an option (2eed5e2)
  • spinner: working in firefox and edge (ab93f3f), closes #8714
  • tabs: $tabs-md-tab-font-size is taken into account (4be5d83), closes #8820
  • tabs: regression in nav-controller-base (d84d8a6)
  • add missing export (#8999) (98d474b)
  • tapclick: several improvements (35d12ef)
  • templates: suffix templates page #8320 (#8368) (61620f8)
  • transition: syntax of cubic-bezier easing (813d945)
  • transition: wrong easing (09c08e9)

Features

  • debug: add IonicErrorHandler (9397d6b)
  • tabs: tabsHideOnSubPages can be modified per tab (4f6a9b1)

1.3.2 "France"

24 Oct 21:53
Compare
Choose a tag to compare

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 there is a scrollview (160629c)
  • scrollComplete onScrollComplete event added to ionScroll (34d663e)
  • scroll fixed memory leak with event listeners (491e256)
  • modal modal-open class is now removed when there are no modals are in the dom (6ed7253)

2.0.0-rc.1

13 Oct 20:40
Compare
Choose a tag to compare

2.0.0-rc.1 (2016-10-13)

Bug Fixes

  • content: move $text-ios-color to content (#8421) (91168af)
  • datetime-util: add missing date property conditions (2aea1cb)
  • demos: double quote in script tag (424b9e0)
  • fab: center fab list for larger buttons (267a77b)
  • fab: not using change detection (47e1e17), closes #8424
  • icon: isActive="false" with ios mode (bcbe03c), closes #8435
  • input: detect value when it is zero (d02e14c), closes #8019
  • input: text input width calculation (#8063) (21fa5cd)
  • item: regression in expandable sliding option button (695d25c), closes #8460
  • item: sliding item should not close when clicking an option button (ec6615d), closes #8481
  • item-divider: fabs have higher z-index than item-dividers (14e668c), closes #8489
  • list: consecutive inset lists with headers (93616c4), closes #8412 #6164
  • menu: backdrop click without 300ms delay (9bbe485), closes #6405
  • menu: console.debug statements are one line (a06bd69)
  • menu: menu's content is resized properly (db72a7d), closes #8504
  • modal: alerts do not trigger modal lifecycle events (e2704a4), closes #8616
  • modal: canEnter is called in modals (a40b42c)
  • nav: ionViewCanLeave does not break navigation (c8954d8), closes #8408
  • nav: ionViewDidLoad is called in modals (451ffe1), closes #8449
  • nav: push-pop pages too quickly (9b65022), closes #8319
  • nav: remove incorrectly used removeStart as a starting index in for loop. Fixes #8442 (6496c7a)
  • navbar: Don't fade out navbars. Fixes #8060 (eab5726)
  • popover: flipped arrow on iOS (#8462) (c996d85)
  • reorder: not trigger click event when reordering (9b2ae8a), closes #8362
  • reorder: several reorder lists in the same view (e75d9be)
  • ripple: always remove the activated class (d893441)
  • searchbar: autocomplete, autocorrect and type works again (7e63650), closes #7744
  • searchbar: clear button makes keyboard dismissal fail on iOS (6aaa601), closes #7527
  • searchbar: ENTER does not clear when it is inside a form (2e1bb4b), closes #7010
  • segment: add missing input (0052480), closes #8371
  • spinner: add input mode fix #8598 (8ee895f)
  • spinner: works in iOS8 (a2ffa63), closes #8145
  • tabs: add TabHighlight to IONIC_DIRECTIVES (ac88547), closes #8294
  • tabs: remove from parent nav when destroyed (5156917)
  • tap-click: null is not an object when scrolling after focusing an input on iOS (21eae2e), closes #7964
  • transition: ios-transition can be used in MD/WP (fcc515f), closes #7171
  • view-controller: dismiss does not crash when called more than once (d5f71a4), closes #8395
  • ViewController: avoid deep copy in dismiss() that can turn into an infinite loop (9227310)
  • virtual-scroll: set this.approxItemHeight before update(true) is called first (#8350) (b16228b)

Features

  • events: handler argument is optional in unsubscribe() (8878e70), closes #8235
  • haptic: add haptic/taptic support to toggle/range/picker (713e2a1)
  • infinite-scroll: it can be enabled/disabled from a ng input (#8385) (fd5cdf0), closes #8380

Performance Improvements

  • searchbar: searchbar animation is disabled by default (d03182e), closes #6023

2.0.0-rc.0

28 Sep 17:19
Compare
Choose a tag to compare

RC0 requires changes to the structure of your app. To get started updating your app see the upgrade steps section below.

New Features

  • Ionic 2 API finalized for 2.0.0 release
  • Angular 2.0.0 (final!)
  • ionViewCanEnter / CanLeave lifecycle events
  • FAB Button lists
  • Ahead of Time (AoT) compiler ready
  • Components can now individually set a mode, which means an app can mix and match iOS / Material Design / Windows Platform modes if that’s desired.
  • Typescript 2.0
  • @types support for third-party libraries
  • Move away from gulp to @ionic/app-scripts
  • Use Rollup for bundling instead of browserify or webpack

BREAKING CHANGES

  • Angular upgrade to 2.0.0
  • Renamed Lifecycle events.
  • Storage has been removed from ionic-angular and into a separate module, @ionic/storage.
    Starters have been updated to add this, make sure to add it to your package.json if you’re using the storage system. See more details here.
  • Nav transitions are queued. For more info on what this means for you see this section.
  • Removed Tabs preloadTabs ability. This is no longer needed with the Ahead of Time (AoT) compiler.
  • Icons in buttons require an attribute on the parent button in order to style them.
  • Platform and mode CSS classes have been moved from the element to the element.
  • select: Select’s alertOptions input has been renamed to selectOptions. See more details here.
  • colors: Colors should be passed in the color input on components, not added
    individually as an attribute on the component. See more details here.
  • buttons: <button> becomes <button ion-button>. See more details here and here.
  • Head link tags for CSS files are no longer dynamically updated, but one CSS file is imported.
    (Future build processes will narrow down the CSS file further to only include what’s used). See more details here.
  • The <scroll-content> element, which is internal to <ion-content>, has been renamed to
    <div class=”scroll-content”> since it was neither a directive nor a web component.
  • <ion-fixed> has been removed, use <div ion-fixed> instead.
  • scss: Changes to how sass/scss is imported. See more details here.
  • typings: We have stopped using the typings tool and have migrated to npm @types. See more details here.

Lifecycle Events Renamed

Renamed ionViewLoaded to ionViewDidLoad
Removed ionViewDidUnload
Removed fireOtherLifecycles from ViewController

Nav Transitions

Nav transitions are now queued. Meaning if you run:

navCtrl.push(Page1);
navCtrl.push(Page2);

Page1 will transition in, then immediately Page2 will transition in. There can never be two transitions happening at the same time.

Page transition promises can now possibly reject the returned promises. Used mainly for ionViewCanEnter and ionViewCanLeave.

Component Colors

Colors are no longer added directly to a component, they should instead be passed in the color attribute.

For example:

<ion-tabs primary>

Becomes

<ion-tabs color="primary">

Or to bind an expression to color:

<ion-navbar [color]="barColor">
   ...
</ion-navbar>
@Component({
  templateUrl: 'build/pages/about/about.html'
})
export class AboutPage {
  barColor: string;

  constructor(private nav: NavController, platform: Platform) {
    this.barColor = platform.is('android') ? 'primary' : 'light';
  }
}

Components with this property:
Badge
Button
Checkbox
Chip
FAB
Icon
Item (Item, Item Divider, List Header)
Label
Navbar
Radio
Searchbar
Segment
Spinner
Tabs
Toggle
Toolbar
Typography (headers, paragraphs, spans, etc.)

Reason for this change:
It was difficult to dynamically add colors to components, especially if the name of the color attribute was unknown in the template.
This change keeps the css flat since we aren’t chaining color attributes on components and instead we assign a class to the component which includes the color’s name.
This allows you to easily toggle a component between multiple colors.
Speeds up performance because we are no longer reading through all of the attributes to grab the color ones.

Select Changes

Select’s alertOptions input has been renamed to selectOptions. It now allows you to pass options for either the alert or action-sheet
interface. Refer to their documentation for the options each of them
accept.

ActionSheet
Alert

New Behavior of Button

<button> becomes <button ion-button>
<a button> becomes <a ion-button>
<button ion-item> does not get the ion-button attribute
Buttons inside of <ion-item-options> do get the ion-button attribute

Reason for this change:
It was difficult to have custom buttons since buttons automatically received the Ionic styles - the user can now take advantage of adding their own styling to a button if they want it to behave differently than the Ionic button.
Keeping the <a> and <button> element and adding ion-button as an attribute gives us the ability to take advantage of the native functionality and built-in accessibility of native elements. If Ionic provided an we’d have to copy over all the possible attributes and events to the real nested button/link (type=submit, formnovalidate, value, autofocus, href, target, focus/blur, download, nofollow, ping, tel:86705309, etc). Additionally, ng2 does not have the “replace” directive where could be turned into .
Since button was already being used as an attribute to the <a> element, this is more consistent between the two.
If a navPush or navPop directive is on an <a ion-button>, Ionic can automatically add the href attribute.
A few reasons why we didn’t create <ion-button>

references #7467

  • button: - <button> becomes <button ion-button>
  • <a button> becomes <a ion-button>
  • <button ion-item> does not get the ion-button attribute
  • Buttons inside of <ion-item-options> do get the ion-button
    attribute
  • Removed the category attribute, this should be passed in
    ion-button instead.
  • Button attributes added for icons in buttons: icon-only,
    icon-left, and icon-right

New Behavior of Icons in Buttons

Icon only buttons

<button>
  <ion-icon name=”rainy”></ion-icon>
</button>

becomes

<button ion-button icon-only>
  <ion-icon name=”rainy”></ion-icon>
</button>

Icon left of text in a button

<button>
  <ion-icon name=”rainy”></ion-icon>
  Rainy
</button>

becomes

<button ion-button icon-left>
  <ion-icon name=”rainy”></ion-icon>
  Rainy
</button>

Icon right of text in a button

<button>
  Rainy
  <ion-icon name=”rainy”></ion-icon>
</button>

becomes

<button ion-button icon-right>
  Rainy
  <ion-icon name=”rainy”></ion-icon>
</button>

Item option buttons - the icon-left attribute should still be added to the <ion-item-options> container and not the button itself.
menuToggle buttons should not get the icon-only attribute

Reason for this change:
There was a noticeable performance decrease from us reading in each button to determine where icons were placed and how to style them. This change improves performance.
This adds styling so that the buttons and icons will be padded a certain amount, but the user is free to leave these attributes off and style the components themselves.

Update CSS Link Tags

Ionic stylesheets are no longer dynamically loaded per platform. Instead there will be one CSS file to import. Note that future build processes will slim down the CSS file even further to only include component CSS actually used.

In the head of your index.html file, replace:

<!-- ionic dynamically decides which stylesheet to load -->
<link ios-href="build/css/app.ios.css" rel="stylesheet">
<link md-href="build/css/app.md.css" rel="stylesheet">
<link wp-href="build/css/app.wp.css" rel="stylesheet">

With:

<link href="build/main.css" rel="stylesheet">

Sass Import

The default configuration will be updated, but if your existing app is using Sass and importing Ionic Sass files directly you’ll need to update the includePaths of Node Sass.

node_modules/ionic-angular/themes

Next, to include Ionic into your custom Sass file you’ll need to update the Ionic import to this:

@import "ionic.theme.default";

Typings

Any type definitions for third party libraries that are included via the typings tool and are included in the the typings.json file should
be updated to use npm @types. An example of how this looks is:

npm install @types/lodash --save-dev --save-exact

Delete the typings.json file, and the typings directory.

Storage

The storage utilities have been moved outside of the framework to a separate library called @ionic/storage.

This library can be installed by executing the following command:

npm install @ionic/storage --save --save-exact

It must be included in the app's NgModule list of providers:

import { Storage } from '@ionic/storage';

...

@NgModule({
  ...
  providers: [Storage]
})

It can then be injected into any class that needs access to it:

import { Storage } from '@ionic/storage';

...

export class MyAwesomePage {
  constructor(public storage: Storage) {
  }

  ionViewDidEnter() {

    this.storage.get('myKey').then( (value:any) => {
      console.log('My value is:', value);
    });
  }
}
`...
Read more

2.0.0-beta.11

05 Aug 15:32
Compare
Choose a tag to compare
2.0.0-beta.11 Pre-release
Pre-release

2.0.0-beta.11 (2016-08-05)

Bug Fixes

  • activator: do not activate elements while scrolling (845a516), closes #7141
  • animation: ele as string selector (9fa31a1)
  • animation: fix easing timing function (0cb093e), closes #7130
  • app: add status bar padding when tab subpages are hidden (d01ee4b), closes #7203
  • backdrop: flicker in UIWebView (44ab527)
  • backdrop: use raf when adding/removing disable-scroll css (941cb1d)
  • bootstrap: return promise and resolve ionicBootstrap (aebdf2f), closes #7145
  • bootstrap: tapclick is injected, probably (#7128) (7358072)
  • button: apply css for buttons w/ ngIf (816a648), closes #5927
  • button: outline buttons do not have hairline borders in iOS (4e88f89)
  • datetime: format seconds token (4fff262), closes #6951
  • datetime-util: fix convertDataToISO to handle negative timezone offsets (ba53a23)
  • generator: change nav to navCtrl (b19547c)
  • gestures: detecting swipe angle correctly + sliding item logic fix (d230cb4)
  • input: add input highlight for ios, fix the highlight size (11a24b9), closes #6449
  • item: sliding item is closed when tapped (7aa559a), closes #7094
  • loading: clear timeout if dismissed before timeout fires (5bbe31a)
  • loading: fix loading overlay during app init (b615c60), closes #6209
  • menu: add statusbarPadding to the header and content in a menu (a468fde), closes #7385
  • menu: fix content going under header (3cd31c3), closes #7084
  • menu: getBackdropElement (cac1d4f)
  • menu: only one menu can be opened at a time (cac378f), closes #6826
  • menu: swipe menu is triggered when the swipe |angle| < 40º (32a70a6)
  • nav: fire lifecycle events from app root portal (a4e393b)
  • nav: fix menuCtrl reference in swipe back (55a5e83)
  • nav: register child nav when created from modal (61a8625)
  • picker: fix iOS 8 picker display (86fd8a4), closes #7319
  • popover: remove min-height from ios, add sass variables (55bc32d), closes #7215
  • range: add mouse listeners to document (267ced6)
  • range: align the label in an item range to the center (d675d39), closes #7046
  • range: ion-label stacked with ion-range (#7050) (5a8fe82), closes #7046
  • range: set ticks to an empty array to prevent errors (7a2ad99)
  • reorder: better style (f289ac6)
  • reorder: canceled reorder is animated smoothly back (8483a43)
  • reorder: non ion-item elements can be reordered (ea9dd02), closes #7339
  • reorder: reorder can be used with any element (d993a1b)
  • scroll: fix scrolling after switching tabs (e4bbcc6), closes #7154
  • select: add the cssClass passed by the user to the alert for a select (81ddd7f), closes #6835
  • slides: delay loading slides until view ready (580b8d5), closes #7089
  • sliding: much better UX + performance (d6f62bc), closes #6913 #6958
  • tabs: add sass variable for inactive opacity and pass it to the colors loop (99efa36)
  • tabs: center tabbar content (997d54e)
  • tabs: fix preloadTabs null element reference (2d19308), closes #7109
  • tabs: make the text color opaque instead of the entire button (dd969a2), closes #6638
  • util: UIEventManager should handle touchcancel event (b805602)

Features

  • alert: allow smooth overflow scrolling (5542a93)
  • content: add a resize function to recalculate the content size (1fe1c1e)
  • footer: apply shadow on MD footer and tabbar bottom (686c262)
  • gesture: Introducing new gesture controller (9f19023)
  • gesture-controller: disable/enable scrolling (72c24bc)
  • header: apply shadow on MD headers (6fa2faf)
  • ion-content: iOS only scroll bounce (5c80445)
  • select: add disabled status in select options (76619cf)
  • tabbar: apply shadow on MD tabbar top (1f4b3e2)
  • tabs: add the transition for material design tabs (eea7e6b)
  • toolbar: add attributes to hide all borders and box shadows (88b637b), closes #7237
  • viewcontroller: add onWillDismiss callback (ec99bfd), closes #6702

Performance Improvements

  • animation: using will-change when using progressStep() (267aa32)
  • menu: several improvements (86c5aaf)

Reverts

  • range: revert PR #7050, it breaks stacked labels and double labels (65c84b3)
  • tabs: undo commit that removes tab sub pages (087e2f2)

BREAKING CHANGES

  • input: S:

Fixed typos in the input highlight variables:

  • $text-input-md-hightlight-color-valid ->
    $text-input-md-highlight-color-valid
  • $text-input-wp-hightlight-color-valid ->
    $text-input-wp-highlight-color-valid

Modified variables to turn on/off the highlight:

ios (defaults to false for all):

$text-input-ios-show-focus-highlight:      false !default;
$text-input-ios-show-valid-highlight:
$text-input-ios-show-focus-highlight !default;
$text-input-ios-show-invalid-highlight:
$text-input-ios-show-focus-highlight !default;

md (defaults to true for all):

$text-input-md-show-focus-highlight:        true !default;
$text-input-md-show-valid-highlight:
$text-input-md-show-focus-highlight !default;
$text-input-md-show-invalid-highlight:
$text-input-md-show-focus-highlight !default;

wp (defaults to true for all):

$text-input-wp-show-focus-highlight:        true !default;
$text-input-wp-show-valid-highlight:
$text-input-wp-show-focus-highlight !default;
$text-input-wp-show-invalid-highlight:
$text-input-wp-show-focus-highlight !default;