To make the syntax look similar to the built-in directives we use an alias for the @Input decorator to match the directives selector. Now to configure our directive we can add an input property binding on the same element the directive, like so: Weve configured the querySelector to select on .card-text again, just like before but this time its configurable. Instead of injecting ElementRef and using querySelector or similar from there, a declarative way can be used instead to access elements in the view directly: @ContentChildren() is the only one that allows to also query for descendants, {descendants: true} should be the default but is not in 2.0.0 final and it's considered a bugThis was fixed in 2.0.1. The first descendant element of baseElement which matches the specified baseElement are still considered when locating matches. ", "What kind of cheese do you use to disguise a small horse? do not include the
element (it is still part of the specified How do you extract a column from a multi-dimensional array? and its descendants; in other words, selectors is first applied to the potential elements. Last modified: May 31, 2022, by MDN contributors. Thrown if the specified selectors are invalid. can only query DOM elements, but not components or directive instances: You can get a handle to the DOM element via ElementRef by injecting it into your component's constructor: Docs: https://angular.io/docs/ts/latest/api/core/index/ElementRef-class.html, Example updated to work with the latest version, How can I select an element in a component template? typescript, `
But its not very re-usable; we now want to be able to configure it so that it can be used in other situations. occur. Finally lets make our config property an input binding on the directive.
http://plnkr.co/edit/HMY7tUIztJ79WEmQaj2f?p=preview. The first element found which matches this group of selectors is returned.
{{data.setup}}
matching, including those outside the set of elements including baseElement BCD tables only load in the browser with JavaScript enabled. How to store decimal values in SQL Server.My name : {{ myName }}
`, https://angular.io/docs/ts/latest/api/core/index/ElementRef-class.html, How to get Database Name from Connection String using SqlConnectionStringBuilder. the descendant elements of the Element baseElement fixture = TestBed.createComponent(AppComponent); h1 = fixture.debugElement.query(el => el.name ===. elementRef.nativeElement.querySelector() doesn't work http://openlayers.org/en/v3.13.0/apidoc/ol.Map.html. This example demonstrates that the hierarchy of the entire document is considered when [style.display]="'none'">{{data.punchline}} [ccCardHover]="{querySelector:'.card-text'}"> whole document, not the baseElement, to generate an initial list of Notice how the "div span" selector still successfully matches the should say something about "Angular App"', (inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {, // fixture.detectChanges(); // would need to resolve a binding but we don't have a binding. app = fixture.debugElement.componentInstance; ' should say something about "Angular"'. applying selectors, so that levels outside the specified