fix(angular): ViewChild() fix (#17037)

fixes #17034
This commit is contained in:
Manu MA
2019-01-10 12:59:29 +01:00
committed by GitHub
parent 169da3709b
commit 27a4709195
12 changed files with 406 additions and 183 deletions

View File

@@ -48,30 +48,30 @@
"tslib": "^1.9.3"
},
"peerDependencies": {
"@angular-devkit/core": "^7.1.4",
"@angular-devkit/schematics": "^7.1.4",
"@angular/core": "^7.1.4",
"@angular/common": "^7.1.4",
"@angular/forms": "^7.1.4",
"@angular/router": "^7.1.4",
"@angular/compiler": "^7.1.4",
"@angular/compiler-cli": "^7.1.4",
"@angular/platform-browser": "^7.1.4",
"@angular/platform-browser-dynamic": "^7.1.4",
"@angular-devkit/core": "^7.2.0",
"@angular-devkit/schematics": "^7.2.0",
"@angular/core": "^7.2.0",
"@angular/common": "^7.2.0",
"@angular/forms": "^7.2.0",
"@angular/router": "^7.2.0",
"@angular/compiler": "^7.2.0",
"@angular/compiler-cli": "^7.2.0",
"@angular/platform-browser": "^7.2.0",
"@angular/platform-browser-dynamic": "^7.2.0",
"rxjs": ">=6.2.0",
"zone.js": "^0.8.26"
},
"devDependencies": {
"@angular-devkit/core": "^7.1.4",
"@angular-devkit/schematics": "^7.1.4",
"@angular/common": "^7.1.4",
"@angular/compiler": "^7.1.4",
"@angular/compiler-cli": "^7.1.4",
"@angular/core": "^7.1.4",
"@angular/forms": "^7.1.4",
"@angular/platform-browser": "^7.1.4",
"@angular/platform-browser-dynamic": "^7.1.4",
"@angular/router": "^7.1.4",
"@angular-devkit/core": "^7.2.0",
"@angular-devkit/schematics": "^7.2.0",
"@angular/common": "^7.2.0",
"@angular/compiler": "^7.2.0",
"@angular/compiler-cli": "^7.2.0",
"@angular/core": "^7.2.0",
"@angular/forms": "^7.2.0",
"@angular/platform-browser": "^7.2.0",
"@angular/platform-browser-dynamic": "^7.2.0",
"@angular/router": "^7.2.0",
"@types/node": "~10.12.0",
"fs-extra": "^7.0.0",
"glob": "^7.1.3",
@@ -81,7 +81,7 @@
"tsickle": "^0.34.0",
"tslint": "^5.10.0",
"tslint-ionic-rules": "0.0.21",
"typescript": "3.1.6",
"typescript": "3.2.2",
"zone.js": "^0.8.26"
},
"schematics": "./dist/schematics/collection.json"

View File

@@ -1,19 +0,0 @@
export { BooleanValueAccessor } from './control-value-accessors/boolean-value-accessor';
export { NumericValueAccessor } from './control-value-accessors/numeric-value-accesssor';
export { RadioValueAccessor } from './control-value-accessors/radio-value-accessor';
export { SelectValueAccessor } from './control-value-accessors/select-value-accessor';
export { TextValueAccessor } from './control-value-accessors/text-value-accessor';
export { IonTabs } from './navigation/ion-tabs';
export { IonBackButtonDelegate } from './navigation/ion-back-button';
export { NavDelegate } from './navigation/nav-delegate';
export { IonRouterOutlet } from './navigation/ion-router-outlet';
export { RouterLinkDelegate } from './navigation/router-link-delegate';
export { NavParams } from './navigation/nav-params';
export { IonVirtualScroll } from './virtual-scroll/virtual-scroll';
export { VirtualItem } from './virtual-scroll/virtual-item';
export { VirtualHeader } from './virtual-scroll/virtual-header';
export { VirtualFooter } from './virtual-scroll/virtual-footer';
export * from './proxies';

View File

@@ -1,11 +1,39 @@
// export custom directives
export * from './directives';
// DIRECTIVES
export { BooleanValueAccessor } from './directives/control-value-accessors/boolean-value-accessor';
export { NumericValueAccessor } from './directives/control-value-accessors/numeric-value-accesssor';
export { RadioValueAccessor } from './directives/control-value-accessors/radio-value-accessor';
export { SelectValueAccessor } from './directives/control-value-accessors/select-value-accessor';
export { TextValueAccessor } from './directives/control-value-accessors/text-value-accessor';
export { IonTabs } from './directives/navigation/ion-tabs';
export { IonBackButtonDelegate } from './directives/navigation/ion-back-button';
export { NavDelegate } from './directives/navigation/nav-delegate';
export { IonRouterOutlet } from './directives/navigation/ion-router-outlet';
export { RouterLinkDelegate } from './directives/navigation/router-link-delegate';
export { NavParams } from './directives/navigation/nav-params';
export { IonVirtualScroll } from './directives/virtual-scroll/virtual-scroll';
export { VirtualItem } from './directives/virtual-scroll/virtual-item';
export { VirtualHeader } from './directives/virtual-scroll/virtual-header';
export { VirtualFooter } from './directives/virtual-scroll/virtual-footer';
export * from './directives/proxies';
// export custom providers
export * from './providers';
// PROVIDERS
export { AngularDelegate } from './providers/angular-delegate';
export { ActionSheetController } from './providers/action-sheet-controller';
export { AlertController } from './providers/alert-controller';
export { Events } from './providers/events';
export { LoadingController } from './providers/loading-controller';
export { MenuController } from './providers/menu-controller';
export { PickerController } from './providers/picker-controller';
export { ModalController } from './providers/modal-controller';
export { Platform } from './providers/platform';
export { PopoverController } from './providers/popover-controller';
export { ToastController } from './providers/toast-controller';
export { NavController } from './providers/nav-controller';
export { DomController } from './providers/dom-controller';
export { Config } from './providers/config';
// ionic route reuse strategy
export * from './util/ionic-router-reuse-strategy';
// ROUTER STRATEGY
export { IonicRouteStrategy } from './util/ionic-router-reuse-strategy';
// export module
// PACKAGE MODULE
export { IonicModule } from './ionic-module';

View File

@@ -1,14 +0,0 @@
export { AngularDelegate } from './angular-delegate';
export { ActionSheetController } from './action-sheet-controller';
export { AlertController } from './alert-controller';
export { Events } from './events';
export { LoadingController } from './loading-controller';
export { MenuController } from './menu-controller';
export { PickerController } from './picker-controller';
export { ModalController } from './modal-controller';
export { Platform } from './platform';
export { PopoverController } from './popover-controller';
export { ToastController } from './toast-controller';
export { NavController } from './nav-controller';
export { DomController } from './dom-controller';
export { Config } from './config';

View File

@@ -0,0 +1,21 @@
import { browser, element, by } from 'protractor';
import { getProperty, setProperty, handleErrorMessages } from './utils';
describe('view-child', () => {
beforeEach(async () => {
await browser.get('/view-child');
});
afterEach(() => {
handleErrorMessages();
});
it('should get a reference to all children', async () => {
// button should be red
expect(await element(by.css('#color-button.ion-color-danger')).isPresent()).toBeTruthy();
// tabs should be found
expect(await element(by.css('#tabs-result')).getText()).toEqual('tabs found');
});
});

View File

@@ -132,60 +132,124 @@
}
},
"@angular-devkit/schematics": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.1.0.tgz",
"integrity": "sha512-MIK6eT3x6EppUcz7KFwJ63z3gUVmi5dQPiN8p+kTpHE2SorZCQvQ6+YKUMw9VZ6WLEQOZYJfoQozKyEWllNlsw==",
"version": "7.2.1",
"resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.2.1.tgz",
"integrity": "sha512-jEhwkeDn8exgJBfUwMc6rdtDkxHJkUmKPTn4M436bkMMMa9KFPFbPpzp9weKpB3SbRjM3Mu90JprO4C7qDtCcg==",
"dev": true,
"requires": {
"@angular-devkit/core": "7.1.0",
"@angular-devkit/core": "7.2.1",
"rxjs": "6.3.3"
},
"dependencies": {
"@angular-devkit/core": {
"version": "7.2.1",
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.2.1.tgz",
"integrity": "sha512-zOozPswSM1cTkltw5LeSPoZ/fJ2d3vN304IVgKgrM5/Fs54bd7nTaBcAK+HvjKS+5KmykYrXW47Q4CdFJikluQ==",
"dev": true,
"requires": {
"ajv": "6.6.2",
"chokidar": "2.0.4",
"fast-json-stable-stringify": "2.0.0",
"rxjs": "6.3.3",
"source-map": "0.7.3"
}
},
"ajv": {
"version": "6.6.2",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz",
"integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==",
"dev": true,
"requires": {
"fast-deep-equal": "^2.0.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
}
}
}
},
"@angular/animations": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.1.0.tgz",
"integrity": "sha512-1Sje3qptVsTxPP4LwcvVPQun4P156wsEEwwCXoCO3NuP+tS67syU8M69uIpyDbpnx2ZeuWpJ9HfvKe1ljeqcuw==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.2.0.tgz",
"integrity": "sha512-xi832o3YN+eYSV4PDRllc8JwkH4aKPlb7NZ0UaqchOmz9/jQcykCEMZDzQAZUgHG1ohay6JBVaV8/zNcbSsRCA==",
"requires": {
"tslib": "^1.9.0"
}
},
"@angular/cli": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/@angular/cli/-/cli-7.1.0.tgz",
"integrity": "sha512-G7WZvClrZjfo0VL6eFxwzqPffUQr3XbdkdCUcVbzJVnkFLrBG5Q2jFOJaZ4uFeRW4z5UM+8u/4N9N1Z6MH2QAQ==",
"version": "7.2.1",
"resolved": "https://registry.npmjs.org/@angular/cli/-/cli-7.2.1.tgz",
"integrity": "sha512-KA5HE+s2ZBV9T+3XAvLXZulvPzp2BQKEKCoj6aefZB+TZASeatXO8keDDm2+N/8zqoqSe/akf6hvB/u9x0xJ3w==",
"dev": true,
"requires": {
"@angular-devkit/architect": "0.11.0",
"@angular-devkit/core": "7.1.0",
"@angular-devkit/schematics": "7.1.0",
"@schematics/angular": "7.1.0",
"@schematics/update": "0.11.0",
"inquirer": "6.2.0",
"@angular-devkit/architect": "0.12.1",
"@angular-devkit/core": "7.2.1",
"@angular-devkit/schematics": "7.2.1",
"@schematics/angular": "7.2.1",
"@schematics/update": "0.12.1",
"inquirer": "6.2.1",
"opn": "5.3.0",
"semver": "5.5.1",
"symbol-observable": "1.2.0"
},
"dependencies": {
"@angular-devkit/architect": {
"version": "0.12.1",
"resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.12.1.tgz",
"integrity": "sha512-1ozBP0ZAApkSfuPpZ7b9vShU8smNxb98jW+65S12cPOxv1bVVxCj5sTmC3sSfXapgq/pMzblbaVSKOG7Ajz0vQ==",
"dev": true,
"requires": {
"@angular-devkit/core": "7.2.1",
"rxjs": "6.3.3"
}
},
"@angular-devkit/core": {
"version": "7.2.1",
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.2.1.tgz",
"integrity": "sha512-zOozPswSM1cTkltw5LeSPoZ/fJ2d3vN304IVgKgrM5/Fs54bd7nTaBcAK+HvjKS+5KmykYrXW47Q4CdFJikluQ==",
"dev": true,
"requires": {
"ajv": "6.6.2",
"chokidar": "2.0.4",
"fast-json-stable-stringify": "2.0.0",
"rxjs": "6.3.3",
"source-map": "0.7.3"
}
},
"ajv": {
"version": "6.6.2",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz",
"integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==",
"dev": true,
"requires": {
"fast-deep-equal": "^2.0.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
}
}
}
},
"@angular/common": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/@angular/common/-/common-7.1.0.tgz",
"integrity": "sha512-tu6Hv3/z3K2NLD4ndBioGtcykhbwhMJYUWb0NvaOLhaVYColWKPFpkflEorDWB+3/IWkpELGhA/HQ2zQh7EVyg==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@angular/common/-/common-7.2.0.tgz",
"integrity": "sha512-5HNGT+XsY+7sQcNoFRqhbUfVdnBAtXaupmMbBclnQHTon9y9Ijp0ocYi7zxx39feo6xYF5HhBMnDPkFgtAnsYQ==",
"requires": {
"tslib": "^1.9.0"
}
},
"@angular/compiler": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.1.0.tgz",
"integrity": "sha512-1Hjx6e+lVXZyXFFe4OW34ZpiaGEYyB1MQ7k2C+cMm0ABMQS3LsWT4DYhY7bk0mmMuuXQj66C62MX76ladDtdIg==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.2.0.tgz",
"integrity": "sha512-On1qj4yQoIGxGOQ09ohTq0QNjrIJtWcwnCXYAEEyc83eadBMOqiFh6SUMgX1O+B7BIB4mebFw/n/etez0A21xw==",
"requires": {
"tslib": "^1.9.0"
}
},
"@angular/compiler-cli": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.1.0.tgz",
"integrity": "sha512-Q42B3YmjMNYWTxTWfyDDFa6HSVqwY3rZO5Kp3Q/NKhQ6w/WddduxjARf/OCbtp0bVX3wZNObS6nO4H65rNCtsw==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.2.0.tgz",
"integrity": "sha512-BKELLAnA4jWfyPEzuVxTNNFAPKJOyh4Xjw7c+dRf90bnw9iIgZOpz9WXSN/xfEhftqRPTnPcfs56i6bxqeYCCQ==",
"dev": true,
"requires": {
"canonical-path": "1.0.0",
@@ -351,7 +415,7 @@
},
"load-json-file": {
"version": "2.0.0",
"resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
"integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
"dev": true,
"requires": {
@@ -393,7 +457,7 @@
},
"minimist": {
"version": "1.2.0",
"resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
},
@@ -419,7 +483,7 @@
},
"pify": {
"version": "2.3.0",
"resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
"dev": true
},
@@ -520,47 +584,47 @@
}
},
"@angular/core": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/@angular/core/-/core-7.1.0.tgz",
"integrity": "sha512-7mMoWuf8jAf4hcjQ0Exz2w9Qx9SRwNuDdtEZFGWH9dZWz5uPCewrN+Kt9MigMfSYGEdLAPcRMIuvFHDCS8B3Hg==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@angular/core/-/core-7.2.0.tgz",
"integrity": "sha512-tlCDDM9IknXvVLk1sg0lzCO4OREM54i1bFtTpl5kPtugK6l4kYCOH78UzDPHnOzzI3LGLj8Hb2NiObVa9c4fdg==",
"requires": {
"tslib": "^1.9.0"
}
},
"@angular/forms": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.1.0.tgz",
"integrity": "sha512-Gwk80SFqucA0Q0E+I90Onec453QVGhcDU0UUAI09NgTKq+K+/g8xudWUx4pwE9t8WOyOhI5jtFRUtY5XAbfnig==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.2.0.tgz",
"integrity": "sha512-vgnKgThitbaSQekTFt8qCFejnBwBMNJDUm7LJFcvRn4wcZKArTARTfSKHudNYCjTEqs9/YT4TJQTm9flVRbUJw==",
"requires": {
"tslib": "^1.9.0"
}
},
"@angular/language-service": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-7.1.0.tgz",
"integrity": "sha512-dgYCD4Kw6j14hPykprSkMJNCo05dKu+JroMR84/PA/J+weN39nAUj4+/TV4oElbRK2Mr/xtHzSkb259y3Rwm/Q==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-7.2.0.tgz",
"integrity": "sha512-UDmIRR0ybdafrJLHkSDgc/3PpsA9lnwXqGMSAyyhEF3InORFFkloAb0a6Naz+y8ePgEMfqbpyWjtzo8qGtOmEQ==",
"dev": true
},
"@angular/platform-browser": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.1.0.tgz",
"integrity": "sha512-kCrmaNZukWaXk6qlvzyE1Dln/YB2XOGbhb9e+y3NE94beCgDTWseKViMevIoGm/H+Lzf0I2RPg8GMKkQ7pQwNQ==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.2.0.tgz",
"integrity": "sha512-ClrGYlacK0kexE7eHLfruOjgJl0MtMt7RsMv5i757GUwbOm1dCwG1HK8cLNDZJFHMZodKVKwEGS6/R5Cl6vrNg==",
"requires": {
"tslib": "^1.9.0"
}
},
"@angular/platform-browser-dynamic": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.1.0.tgz",
"integrity": "sha512-0yG6e/ZOI9LNUGgSjJ7xUWZhC41z87klO0oEHhEzQeaDxO/SOBasbMiws4ETuhulMgOR81UCAVobXMoOQJbfWg==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.2.0.tgz",
"integrity": "sha512-IiyBcQIQVDZMxfpTYex1QfPmcMubKLgu1pCvQsjr0HmUEySqcykO+FzHlYLf5TTgRrtkI6cP2pYzTHGVR93Gpg==",
"requires": {
"tslib": "^1.9.0"
}
},
"@angular/router": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/@angular/router/-/router-7.1.0.tgz",
"integrity": "sha512-yrjNvCj7XbXmZSmQfXGEkWJ9ogRZmIk5GHyOfGKNNRXhQK2OBznY0Avyer2r3mcgV/RLrI1FYQyKN9mdLftf6g==",
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/@angular/router/-/router-7.2.0.tgz",
"integrity": "sha512-Jpm0Y5IH30hIQsbnLgi2/LgHbArfE9gWMj/9mDIUOlJeQfGzNVoifBE+zLLJU/wb09+ZtfwGBxkMeDTitH/n2A==",
"requires": {
"tslib": "^1.9.0"
}
@@ -726,20 +790,20 @@
}
},
"@ionic/angular": {
"version": "4.0.0-beta.18",
"resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-4.0.0-beta.18.tgz",
"integrity": "sha512-VQCT6vGg4tNzmVWZTzIE0tXI8tRGuSlQJMmRmWVuRsAncr+/P+02BzYL3R5ssrLcoRlsJhUJmIyIcJ1XbEkW9w==",
"version": "4.0.0-rc.1",
"resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-4.0.0-rc.1.tgz",
"integrity": "sha512-BoNynQ7s+9v4D/yOg6Po33c8svL3HLrL623cmU2CeXIh8F7c4DTlyn+vE6x1ifWrlHucLc5KmMCGd5YqzsGfNw==",
"requires": {
"@ionic/core": "4.0.0-beta.18",
"@ionic/core": "4.0.0-rc.1",
"tslib": "^1.9.3"
}
},
"@ionic/core": {
"version": "4.0.0-beta.18",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-4.0.0-beta.18.tgz",
"integrity": "sha512-mppyG+7NJWaA/y25dzkyduZm+T527Mpm37jOxfQIAeDEYUvyj/yO5hOrXo1WwzSXI4EquxFnoIfbmlE0Jj0FRg==",
"version": "4.0.0-rc.1",
"resolved": "https://registry.npmjs.org/@ionic/core/-/core-4.0.0-rc.1.tgz",
"integrity": "sha512-HGMjSq0hW7xVczTDib3tJ1aLi6RgE6R3spKWRiEsVvuBz3WGrLAuG6ASFic/U1k5LLG6vyJoWs4qvZ24b3dXag==",
"requires": {
"ionicons": "4.5.0"
"ionicons": "4.5.1"
}
},
"@ngtools/webpack": {
@@ -774,30 +838,90 @@
}
},
"@schematics/angular": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-7.1.0.tgz",
"integrity": "sha512-BLRTHlhYXgP49OwDyoolwolf7LqxOAPuc8lpgH0HEmYjkXmufZ4urngyFKY1IuBwaAR4PLjDx3U/ofszyV0taw==",
"version": "7.2.1",
"resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-7.2.1.tgz",
"integrity": "sha512-UdqU8udVr693BZ6uaZ7+el/VFlTjrmp56OS+6YaziyAko84e1Q1Fcx+fwdHugy4V3YmQhTVsyOPSEsphnwSwOA==",
"dev": true,
"requires": {
"@angular-devkit/core": "7.1.0",
"@angular-devkit/schematics": "7.1.0",
"typescript": "3.1.6"
"@angular-devkit/core": "7.2.1",
"@angular-devkit/schematics": "7.2.1",
"typescript": "3.2.2"
},
"dependencies": {
"@angular-devkit/core": {
"version": "7.2.1",
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.2.1.tgz",
"integrity": "sha512-zOozPswSM1cTkltw5LeSPoZ/fJ2d3vN304IVgKgrM5/Fs54bd7nTaBcAK+HvjKS+5KmykYrXW47Q4CdFJikluQ==",
"dev": true,
"requires": {
"ajv": "6.6.2",
"chokidar": "2.0.4",
"fast-json-stable-stringify": "2.0.0",
"rxjs": "6.3.3",
"source-map": "0.7.3"
}
},
"ajv": {
"version": "6.6.2",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz",
"integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==",
"dev": true,
"requires": {
"fast-deep-equal": "^2.0.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
}
},
"typescript": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.2.tgz",
"integrity": "sha512-VCj5UiSyHBjwfYacmDuc/NOk4QQixbE+Wn7MFJuS0nRuPQbof132Pw4u53dm264O8LPc2MVsc7RJNml5szurkg==",
"dev": true
}
}
},
"@schematics/update": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.11.0.tgz",
"integrity": "sha512-Zrt4MQOM8DjK7fYVrzx08KhQ7jSj/at0/uF+Ca+ObZJIiC67IY8NXlc1TETXpB4A2UYrclvc9mTpZrvgIoEcYA==",
"version": "0.12.1",
"resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.12.1.tgz",
"integrity": "sha512-P92tDxy0AA1NPhaThiJ7fIFxIC4jzlGK7sJlpbnRREBImsI/O9gmGaV8Kjy+75vaEjqpWaU2oj1hnWqkmxSK1A==",
"dev": true,
"requires": {
"@angular-devkit/core": "7.1.0",
"@angular-devkit/schematics": "7.1.0",
"@angular-devkit/core": "7.2.1",
"@angular-devkit/schematics": "7.2.1",
"@yarnpkg/lockfile": "1.1.0",
"ini": "1.3.5",
"pacote": "9.1.1",
"rxjs": "6.3.3",
"semver": "5.5.1",
"semver-intersect": "1.4.0"
},
"dependencies": {
"@angular-devkit/core": {
"version": "7.2.1",
"resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.2.1.tgz",
"integrity": "sha512-zOozPswSM1cTkltw5LeSPoZ/fJ2d3vN304IVgKgrM5/Fs54bd7nTaBcAK+HvjKS+5KmykYrXW47Q4CdFJikluQ==",
"dev": true,
"requires": {
"ajv": "6.6.2",
"chokidar": "2.0.4",
"fast-json-stable-stringify": "2.0.0",
"rxjs": "6.3.3",
"source-map": "0.7.3"
}
},
"ajv": {
"version": "6.6.2",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz",
"integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==",
"dev": true,
"requires": {
"fast-deep-equal": "^2.0.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
}
}
}
},
"@types/jasmine": {
@@ -1132,7 +1256,7 @@
},
"ansi-escapes": {
"version": "3.1.0",
"resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
"integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
"dev": true
},
@@ -3379,7 +3503,7 @@
},
"expand-range": {
"version": "1.8.2",
"resolved": "http://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
"resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
"integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
"dev": true,
"requires": {
@@ -5076,9 +5200,9 @@
"dev": true
},
"inquirer": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz",
"integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==",
"version": "6.2.1",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.1.tgz",
"integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==",
"dev": true,
"requires": {
"ansi-escapes": "^3.0.0",
@@ -5092,7 +5216,7 @@
"run-async": "^2.2.0",
"rxjs": "^6.1.0",
"string-width": "^2.1.0",
"strip-ansi": "^4.0.0",
"strip-ansi": "^5.0.0",
"through": "^2.3.6"
},
"dependencies": {
@@ -5116,15 +5240,34 @@
"requires": {
"is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^4.0.0"
},
"dependencies": {
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"dev": true,
"requires": {
"ansi-regex": "^3.0.0"
}
}
}
},
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz",
"integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==",
"dev": true,
"requires": {
"ansi-regex": "^3.0.0"
"ansi-regex": "^4.0.0"
},
"dependencies": {
"ansi-regex": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz",
"integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==",
"dev": true
}
}
}
}
@@ -5140,9 +5283,9 @@
}
},
"interpret": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
"integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
"integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==",
"dev": true
},
"invariant": {
@@ -5161,9 +5304,9 @@
"dev": true
},
"ionicons": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/ionicons/-/ionicons-4.5.0.tgz",
"integrity": "sha512-nNkS/0wmPcW4Lbg+NqivlOl14BGKKpaZZzZVQzH63MuZZvuu5u8F/JCwcUYiPOAYGp02w0UaDL/slz+HZOuB3Q=="
"version": "4.5.1",
"resolved": "https://registry.npmjs.org/ionicons/-/ionicons-4.5.1.tgz",
"integrity": "sha512-zqfkjpPKsdzzXePdE03IRw6xt7B6N3fcN/7NepyniuEWhKZLy7YpdZLegEwBmKeciXi7rIcv1O/hHJTdokUwXQ=="
},
"ip": {
"version": "1.1.5",
@@ -6282,25 +6425,36 @@
},
"dependencies": {
"cacache": {
"version": "11.3.1",
"resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.1.tgz",
"integrity": "sha512-2PEw4cRRDu+iQvBTTuttQifacYjLPhET+SYO/gEFMy8uhi+jlJREDAjSF5FWSdV/Aw5h18caHA7vMTw2c+wDzA==",
"version": "11.3.2",
"resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz",
"integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==",
"dev": true,
"requires": {
"bluebird": "^3.5.1",
"chownr": "^1.0.1",
"figgy-pudding": "^3.1.0",
"glob": "^7.1.2",
"graceful-fs": "^4.1.11",
"lru-cache": "^4.1.3",
"bluebird": "^3.5.3",
"chownr": "^1.1.1",
"figgy-pudding": "^3.5.1",
"glob": "^7.1.3",
"graceful-fs": "^4.1.15",
"lru-cache": "^5.1.1",
"mississippi": "^3.0.0",
"mkdirp": "^0.5.1",
"move-concurrently": "^1.0.1",
"promise-inflight": "^1.0.1",
"rimraf": "^2.6.2",
"ssri": "^6.0.0",
"unique-filename": "^1.1.0",
"ssri": "^6.0.1",
"unique-filename": "^1.1.1",
"y18n": "^4.0.0"
},
"dependencies": {
"lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true,
"requires": {
"yallist": "^3.0.2"
}
}
}
},
"mississippi": {
@@ -6564,9 +6718,9 @@
}
},
"minizlib": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.1.tgz",
"integrity": "sha512-TrfjCjk4jLhcJyGMYymBH6oTXcWjYbUAXTHDbtnWHjZC25h0cdajHuPE1zxb4DVmu8crfh+HwH/WMuyLG0nHBg==",
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz",
"integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
"dev": true,
"requires": {
"minipass": "^2.2.1"
@@ -6932,9 +7086,9 @@
}
},
"npm-packlist": {
"version": "1.1.12",
"resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.12.tgz",
"integrity": "sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g==",
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.2.0.tgz",
"integrity": "sha512-7Mni4Z8Xkx0/oegoqlcao/JpPCPEMtUvsmB0q7mgvlMinykJLSRTYuFqoQLYgGY8biuxIeiHO+QNJKbCfljewQ==",
"dev": true,
"requires": {
"ignore-walk": "^3.0.1",
@@ -7304,25 +7458,36 @@
},
"dependencies": {
"cacache": {
"version": "11.3.1",
"resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.1.tgz",
"integrity": "sha512-2PEw4cRRDu+iQvBTTuttQifacYjLPhET+SYO/gEFMy8uhi+jlJREDAjSF5FWSdV/Aw5h18caHA7vMTw2c+wDzA==",
"version": "11.3.2",
"resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz",
"integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==",
"dev": true,
"requires": {
"bluebird": "^3.5.1",
"chownr": "^1.0.1",
"figgy-pudding": "^3.1.0",
"glob": "^7.1.2",
"graceful-fs": "^4.1.11",
"lru-cache": "^4.1.3",
"bluebird": "^3.5.3",
"chownr": "^1.1.1",
"figgy-pudding": "^3.5.1",
"glob": "^7.1.3",
"graceful-fs": "^4.1.15",
"lru-cache": "^5.1.1",
"mississippi": "^3.0.0",
"mkdirp": "^0.5.1",
"move-concurrently": "^1.0.1",
"promise-inflight": "^1.0.1",
"rimraf": "^2.6.2",
"ssri": "^6.0.0",
"unique-filename": "^1.1.0",
"ssri": "^6.0.1",
"unique-filename": "^1.1.1",
"y18n": "^4.0.0"
},
"dependencies": {
"lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true,
"requires": {
"yallist": "^3.0.2"
}
}
}
},
"get-stream": {

View File

@@ -13,15 +13,15 @@
},
"private": true,
"dependencies": {
"@angular/animations": "~7.1.0",
"@angular/common": "~7.1.0",
"@angular/compiler": "~7.1.0",
"@angular/core": "~7.1.0",
"@angular/forms": "~7.1.0",
"@angular/platform-browser": "~7.1.0",
"@angular/platform-browser-dynamic": "~7.1.0",
"@angular/router": "~7.1.0",
"@ionic/angular": "^4.0.0-beta.18",
"@angular/animations": "~7.2.0",
"@angular/common": "~7.2.0",
"@angular/compiler": "~7.2.0",
"@angular/core": "~7.2.0",
"@angular/forms": "~7.2.0",
"@angular/platform-browser": "~7.2.0",
"@angular/platform-browser-dynamic": "~7.2.0",
"@angular/router": "~7.2.0",
"@ionic/angular": "^4.0.0-rc.1",
"core-js": "^2.5.4",
"rxjs": "~6.3.3",
"tslib": "^1.9.0",
@@ -29,9 +29,9 @@
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.11.0",
"@angular/cli": "~7.1.0",
"@angular/compiler-cli": "~7.1.0",
"@angular/language-service": "~7.1.0",
"@angular/cli": "~7.2.0",
"@angular/compiler-cli": "~7.2.0",
"@angular/language-service": "~7.2.0",
"@types/node": "~8.9.4",
"@types/jasmine": "~2.8.8",
"@types/jasminewd2": "~2.0.3",

View File

@@ -14,11 +14,13 @@ import { VirtualScrollDetailComponent } from './virtual-scroll-detail/virtual-sc
import { NestedOutletComponent } from './nested-outlet/nested-outlet.component';
import { NestedOutletPageComponent } from './nested-outlet-page/nested-outlet-page.component';
import { NestedOutletPage2Component } from './nested-outlet-page2/nested-outlet-page2.component';
import { ViewChildComponent } from './view-child/view-child.component';
const routes: Routes = [
{ path: '', component: HomePageComponent },
{ path: 'inputs', component: InputsComponent },
{ path: 'modals', component: ModalComponent },
{ path: 'view-child', component: ViewChildComponent },
{ path: 'router-link', component: RouterLinkComponent },
{ path: 'router-link-page', component: RouterLinkPageComponent },
{ path: 'virtual-scroll', component: VirtualScrollComponent },

View File

@@ -22,6 +22,7 @@ import { NestedOutletComponent } from './nested-outlet/nested-outlet.component';
import { NestedOutletPageComponent } from './nested-outlet-page/nested-outlet-page.component';
import { NestedOutletPage2Component } from './nested-outlet-page2/nested-outlet-page2.component';
import { NavComponent } from './nav/nav.component';
import { ViewChildComponent } from './view-child/view-child.component';
@NgModule({
declarations: [
@@ -42,7 +43,8 @@ import { NavComponent } from './nav/nav.component';
NestedOutletComponent,
NestedOutletPageComponent,
NestedOutletPage2Component,
NavComponent
NavComponent,
ViewChildComponent
],
imports: [
BrowserModule,

View File

@@ -37,5 +37,10 @@
Nested ion-router-outlet
</ion-label>
</ion-item>
<ion-item routerLink="/view-child">
<ion-label>
ViewChild()
</ion-label>
</ion-item>
</ion-list>
</ion-content>

View File

@@ -0,0 +1,13 @@
<ion-header>
<ion-toolbar>
<ion-title>
ViewChild() test
</ion-title>
</ion-toolbar>
</ion-header>
<ion-content padding>
<ion-button id="color-button">Hello! it's a button</ion-button>
<div #div id="tabs-result"></div>
<ion-tabs>
</ion-tabs>
</ion-content>

View File

@@ -0,0 +1,20 @@
import { Component, ViewChild, AfterViewInit, ElementRef } from '@angular/core';
import { IonTabs, IonButton } from '@ionic/angular';
@Component({
selector: 'app-view-child',
templateUrl: './view-child.component.html'
})
export class ViewChildComponent implements AfterViewInit {
@ViewChild(IonButton) button: IonButton;
@ViewChild(IonTabs) tabs: IonTabs;
@ViewChild('div') div: ElementRef;
ngAfterViewInit() {
this.button.color = 'danger';
if (this.tabs != null) {
this.div.nativeElement.textContent = 'tabs found';
}
}
}