paso pasar parametros example entre comunicacion componentes angular

pasar - viewchild angular 6



Angular2 Selector no coincide con ningĂșn elemento en los componentes anidados (2)

Tengo dos @Components en angular anidados 2. La vista se muestra bien pero siempre arroja un error de javascript la primera vez. Aquí está mi código en Typescript.

App HTML:

<body> <my-app>loading...</my-app> </body>

Componente de la aplicación:

import {bootstrap, Component} from ''angular2/angular2''; import {CanvasComponent} from "./CanvasComponent"; @Component({ selector: ''my-app'', template: ` <h1>{{title}}</h1> <h2>My Games</h2> <div> <my-canvas></my-canvas> </div> `, directives: [CanvasComponent] }) class AppComponent { } bootstrap(AppComponent);

Componente de lona:

import {bootstrap, Component, View} from ''angular2/angular2''; @Component({ selector: ''my-canvas'' }) @View({ template: ` <div> <span>Balls:</span> <div>{{canvas.length}}</div> </div> ` }) export class CanvasComponent { canvas = [1,2,3]; } bootstrap(CanvasComponent);

El error es:

EXCEPTION: The selector "my-canvas" did not match any elements


Elimine bootstrap(CanvasComponent) de su archivo CanvasComponent . Está intentando arrancar la aplicación por segunda vez usando CanvasComponent como raíz y buscando el elemento my-canvas en el HTML de la aplicación. Por supuesto que no puede encontrarlo.


Solucioné el problema cambiando el nombre en el index.html, debería asegurarse de que la etiqueta en el index.html sea el mismo selector que en el componente principal.

<html> <head> <title>Angular 2 QuickStart</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="stylesheets/styles.css"> <!-- 1. Load libraries --> <!-- Polyfill(s) for older browsers --> <script src="node_modules/core-js/client/shim.min.js"></script> <script src="node_modules/zone.js/dist/zone.js"></script> <script src="node_modules/reflect-metadata/Reflect.js"></script> <script src="node_modules/systemjs/dist/system.src.js"></script> <!-- 2. Configure SystemJS --> <script src="systemjs.config.js"></script> <script> System.import(''app'').catch(function(err){ console.error(err); }); </script> </head> <!-- 3. Display the application --> <body> <my-app>Loading...</my-app> <!-- THIS TAG SHOULD BE THE SAME THAT THE SELECTOR IN THE MAIN COMPONENT --> </body> </html> <!-- end snippet --> </body> </html>