6.0.6 (2018-06-22)
IMPORTANT! You should use this version with @angular/* v6.0.6 and up.
- clean up properly shared modal page router outlets (#1360) (3332ca2)
- animations: inject document object in the animation engine (#1395) (379e958), closes #1393
- modal: lower isModalNavigation flag when closing modal (#1378) (6ab1cac)
6.0.0 (2018-05-30)
- Use cssType (uglify safe) instead typeName of for view metadata. (d85910c)
- modal: closeCallback(...) should not have side effects when called multiple times (#1349) (bffbbc2)
- modal: missing animated & stretched params (#1293) (a9a901b)
- router: state is not guarded before use (#1331) (d27a893), closes /github.com/NativeScript/nativescript-angular/commit/b98da83adb3f5c51ee448fa38a51b7c65274c82e#diff-a7820fa2a2eb0ce14f3f0b8bfc666dd5R49
- TabViewItemDirective : textTransform property added (#1315) (11d01f9)
- Angular 6 support
- router: enable flexible page router outlets (#1298) (b98da83)
- testing: Testing Components with TestBed (#1175) (52f3ec6)
5.3.0 (2018-04-10)
This version requires NativeScript 4.0.
- animations: provide fake document object in both AoT and JiT mode (#1164) (040e0e3), closes #1163
- App crashes on restart in android (#1261) (331b878)
- NS 4.0 Integration (#1250) (f84fbdc)
- prevent core modules from getting loaded multiple times (#1196) (010fed7)
Importing NativeScriptModule
and NativeScriptAnimationsModule
in multiple ngModules is no longer allowed.
To migrate:
- in
AppModule
:- import
NativeScriptModule
- import
NativeScriptAnimationsModule
- only if you are planning to use Angular Animations
- import
- in the remaining modules:
- remove
NativeScriptModule
imports and replace withNativeScriptCommonModule
import - remove
NativeScriptAnimationsModule
imports
- remove
BEFORE:
app.module.ts:
import { NativeScriptModule } from 'nativescript-angular/nativescript.module';
import { NativeScriptAnimationsModule } from 'nativescript-angular/animations';
...
@NgModule({
imports: [
NativeScriptModule,
NativeScriptAnimationsModule
],
...
})
another.module.ts:
import { NativeScriptModule } from 'nativescript-angular/nativescript.module';
import { NativeScriptAnimationsModule } from 'nativescript-angular/animations';
...
@NgModule({
imports: [
NativeScriptModule,
NativeScriptAnimationsModule
],
...
})
AFTER:
app.module.ts:
import { NativeScriptModule } from 'nativescript-angular/nativescript.module';
import { NativeScriptAnimationsModule } from 'nativescript-angular/animations';
...
@NgModule({
imports: [
NativeScriptModule,
NativeScriptAnimationsModule
],
...
})
another.module.ts:
import { NativeScriptCommonModule } from 'nativescript-angular/common';
...
@NgModule({
imports: [
NativeScriptCommonModule
],
...
})
NativeScript 4.0 allows you to put any view as the root (not only Frame) of the application. To support in angular projects we had to introduce some changes in how A{N}gular apps are bootstrapped.
PREVIOUS BEHAVIOR
Bootstrap creates a root Frame
and initial Page
. Then it bootstraps the angular application inside this page. Navigation with <page-router-outlet>
will always navigate in the Frame
created by the bootstrap.
Limitations:
- You cannot change the root view of the app (to
RadSideDrawer
for example). It is always theFrame
created by the bootstrap. - You can have only one
<page-router-outlet>
as there is only oneFrame
. - You always have a
Page
view wrapping your components. Because theActionBar
is part of thatPage
you can always change it with the<ActionBar>
component.
NEW BEHAVIOR
Bootstrap will not create root view by default. It will use the root view of your main application component as the root view of the application. The <page-router-outlet>
component will create its own Frame
and will use it for navigation. It will also wrap the components you navigate to in a Page
and will navigate to it as it did before.
Which means:
-
You can use any view for application root. Finally, you can have application-wide
RadSideDrawer
. -
You have more flexibility over where to place the
<page-router-outlet>
, you can even have more than one for more advanced scenarios. -
If you don't use
<page-router-outlet>
in your app you will not get the defaultPage
andFrame
, which means you will not be able to inject them in you components or show theActionBar
. There is specialcreateFrameOnBootstrap
option you can pass on bootstrap to make things as before:
platformNativeScript({ createFrameOnBootstrap: true })
.bootstrapModuleFactory(AppModuleNgFactory);
- If you are using
<page-router-outlet>
you probably don't have to do any changes. Bootstrap will not createFrame
andPage
, but the outlet will do that. It will also take care of providingPage
and so theActionBar
should work as before.
WORKING WITH FRAMES
There might be multiple frames (if you have multiple <page-router-outlet>
's). Angular DI works with singletons, so it will always return one instance of Frame
. We have introduced FrameService
(still experimental) which has a getFrame()
method. It will return the current frame (the one you have navigated last).
The signature onAfterLivesync
observable changed from:
export const onAfterLivesync = new EventEmitter<NgModuleRef<any>>();
to:
export const onAfterLivesync = new EventEmitter<{ moduleRef?: NgModuleRef<any>; error?: Error }>();
5.2.0 (2018-01-17)
5.1.0 (2018-01-10)
5.0.0 (2017-12-20)
-
UI must be created before first render, drainMicroTasks when the first page is created. This removes the white screen displayed between the launch screen and the initial page view. Speeds up roughly 300ms startup times for iOS with Angular. (#1103)
-
update to Angular 5 animations and add support for AnimationBuilder (#1114) (191f2a0)
NSModuleFactoryLoader is no longer needed for {N} apps. (192a3d0)
Before:
// app.module.ts
@NgModule({
providers: [
{ provide: NgModuleFactoryLoader, useClass: NSModuleFactoryLoader }
// ...
],
// ...
})
class AppModule { }
After:
// app.module.ts
@NgModule({
providers: [
// ...
],
// ...
})
class AppModule { }
5.0.0-rc.0 (2017-11-06)
- Initial Angular 5.0 support (#1073)
4.4.1 (2017-10-13)
This is the last version of NativeScript Angular that supports Angular 4.
- forms: add base-value-accessor.ts for <4.4.0 versions compatibility (#1039) (79e425c)
4.4.0 (2017-10-11)
- forms: default to unsetValue for value accessors (#846) (6940955)
- forms: disable onTouch for date, number and selectedIndex value accessors (#986) (b4b5ef6), closes #887
- add
exportAs
logic forisActive
onrouterLinkActive
directive (#940) (147d35a) - Http: expand support for request on local files (#982) (b95184f)
- styling: Allow loading .css files as a fallback if no .scss file is found(#954) (#955) (696e914)
- Angular 4.4 support (#1002) (c264453)
4.2.0 (2017-08-09)
NativeScriptModule
should be imported only in the root application module (usually namedAppModule
). All other NgModules in the app (both feature and lazy-loaded ones) should import theNativeScriptCommonModule
instead. The behavior is aligned withBrowserModule
andCommonModule
in web Angular apps described in this guide.
Migration steps:
In all NgModules, except the root one (AppModule
), replace:
import { NativeScriptModule } from "nativescript-angular/nativescript.module";
…
@NgModule({
imports: [
NativeScriptModule,
]
…
})
with:
import { NativeScriptCommonModule } from "nativescript-angular/common";
…
@NgModule({
imports: [
NativeScriptCommonModule,
]
…
})
3.1.3 (2017-07-19)
- action-bar: ignore InvisibleNodes when adding title (#903) (8308e45), closes #897
- asynchronously destroy items evicted on clearHistory navigation (#847) (448412a), closes #829
3.1.2 (2017-07-12)
3.1.1 (2017-06-29)
3.1.0 (2017-06-19)
- animations: use parsers from core modules (#844) (1abebb6), closes #738
- dom-adapter: add fake implementation for getUserAgent (#835) (743131c), closes #831
- forms: add (touch) event and [disabled] property for controls (#836) (c8a6404), closes #804
- ns-router-link: convert clearHistory string to boolean (#834) (ff99984), closes #832
- renderer: add styles when ViewEncapsulation is None (#812) (8d013e2), closes #794
- renderer: set templateParent to comment and text nodes (#785) (b127ba7), closes #777 #787
- renderer: stop performing value conversions (#806) (354074d), closes #799
3.0.0 (2017-05-03)
- action-bar: Don't remove action items twice. (b96b61f)
- animations: add onDestroy method to NativeScriptAnimationPlayer (ec07ec3)
- animations: set nodeType 'element' to newly created views (#720) (8af20ad)
- gitignore: Add editor files into gitignore (9beea98)
- init: Bootstrap Angular on page "navigatingTo" event. (85b9d01)
- list-view: Destroy item views on unload (71301aa)
- list-view: Do not access destroyed items' ng views. (c6f7549)
- list-view-comp: IterableDiffer is now parameterized on (f692c5f)
- ns-http: make defaultOptions of type RequestOptions (073c95d)
- action bar: attach #comment nodes with _addView (#729) (0490605), closes #725
- ns-router-link: navigate with urlTree (#728) (3c6f5ab), closes #724
- use providers' map for injectors in page-router-outlet (#744) (07fe66c), closes #741
- animations: introduce NativeScriptAnimationsModule (#704) (f9ad6a5)
- renderer: use EmulatedRenderer to scope component styles (70603c4)
- renderer: implement createComment and createText methods using (0f128ad)
- renderer: support namespaced attributes (#719) (9b5b413)
- animations: To use animations, you need to import the NativeScriptAnimationsModule from "nativescript-angular/animations" in your root NgModule.
- User applications cannot import NativeScriptModule from "nativescript-angular/platform" anymore. Migration: Before:
import { NativeScriptModule } from "nativescript-angular/platform";
After
import { NativeScriptModule } from
"nativescript-angular/nativescript.module";
1.5.2 (2017-04-18)
1.5.1 (2017-03-30)
- action bar: attach #comment nodes with _addView (#729) (be93db6), closes #725
- ns-router-link: navigate with urlTree (#728) (71058f8), closes #724
1.5.0 (2017-03-22)
- action-bar: Don't remove action items twice. (677d7e0)
- animations: add onDestroy method to NativeScriptAnimationPlayer (2e24010)
- dom_adapter: add missing
contains
method signature (bae45f6) - dom_adapter: update setTitle and getGlobalEventTarget to be compliant with Angular API (25c134d)
- gitignore: Add editor files into gitignore (819a960)
- init: Bootstrap Angular on page "navigatingTo" event. (ab04aba)
- list-view-comp: IterableDiffer is now parameterized on <KeyedTemplate> (780967d)
- ns-http: make defaultOptions of type RequestOptions (db730e2)
- page-router-outlet: activateWith instead of activate method (8d832bc)
- page-router-outlet: manually run detect changes when navigating to new page (07caa74)
- platform: import InjectionToken and ViewEncapsulation instead of OpaqueToken (c4dc8d4)
- platform: import MissingTranslationStrategy (d2328a5)
- renderer: implement createComment and createText methods using Placeholders (c0ec870)
- renderer: use _eachChildView for nextSibling (150c1ce)
- renderer: use flags in
setStyle
andremoveStyle
instead of booleans (a6d9247) - ts: ship package with reference to iterable interface (7edfa6b)
- animations: introduce NativeScriptAnimationsModule (b5874ba)
- renderer: implement simple nextSibling method using parent's _eachChildView (98d9d20)
- renderer: upgrade to be compliant with Angular 4's Renderer2 and RendererFactory2 (a3adcca)
- renderer: use EmulatedRenderer to scope component styles (25f5111)
- NativeScriptModule: User applications cannot import NativeScriptModule from "nativescript-angular/platform" anymore. Migration: Before:
import { NativeScriptModule } from "nativescript-angular/platform";
After
import { NativeScriptModule } from
"nativescript-angular/nativescript.module";
-
animations: To use animations, you need to import the NativeScriptAnimationsModule from "nativescript-angular/animations" in your root NgModule. Also you need a dependency to "@angular/animations".
-
typescript: The required version of TypeScript is ~2.1. Support for ~2.2 requires changes in
tns-core-modules
and will be provided with NativeScript 3.0.
- Angular 2.1.2 compatibility release
- Angular 2.1.1 compatibility release
- [Experimental] Support for ahead-of-time(AOT) compilation.
- Angular 2.1.0 compatibility release
- Angular 2.0.2 compatibility release
- Modal dialogs no longer require that you create a ModalDialogService provider in your component.
- Migrate to Angular 2 RC5.
- Bootstrapping apps using NgModule's. The old
nativescriptBootstrap
method is gone, and apps should switch to theplatformNativeScriptDynamic().bootstrapModule(MyAppModule)
API - The library entrypoint is now the
nativescript-angular/platform
module. ImportNativeScriptRouterModule
fromnativescript-angular/router
andNativeScriptFormsModule
fromnativescript-angular/forms
respectively if you want to use routing and form value accessor directives.
-
Migrate to Migrate to Angular RC3 and Angular Router 3.0.0-alpha.7:
-
Build no more requires globally installed typings
-
(#273) ModalDialogService.showModal() doesn't show modal
-
(#257) iOS navigation bug
-
(#252) Using text-decoration in a template causes iOS app to crash
-
(#262) Critical - Memory and cpu usage.
-
(#242) Use the ComponentFactory API instead of deprecated DynamicComponentLoader
-
(#229) Implement ngStyle directive
-
The Beta Angular Router moved to
nativescript-angular/router-deprecated
to continue using it change imports:nativescript-angular/router
->nativescript-angular/router-deprecated
nativescript-angular/router/ns-router
->nativescript-angular/router-deprecated/ns-router-deprecated
-
Build requires globally installed typings (
npm install -g typings
)