I just started to learn angular, do not judge strictly. I have a component with a range of values. I need to transfer the range values to the parent component when changing the range. Here is my component:
TS:
import { Component, Output, OnChanges, SimpleChanges } from '@angular/core'; @Component({ selector: 'sliderrange-app', templateUrl: './app/components/slider.range/slider.range.component.html', styleUrls: ['./app/components/slider.range/slider.range.component.css'] }) export class SliderRangeComponent { range: string; createSliderRange(minValue: number, maxValue: number) { $("#slider-range").slider({ animate: "fast", range: true, min: minValue, max: maxValue, values: [minValue, maxValue], slide: function (event, ui) { $("#range").val(ui.values[0] + " - " + ui.values[1]); return $("#range").val(ui.values[0] + " - " + ui.values[1]); } }); $("#range").val($("#slider-range").slider("values", 0) + " - " + $("#slider-range").slider("values", 1)); return $("#slider-range").slider("values", 0) + ";" + $("#slider-range").slider("values", 1); } } HTML:
<p> <label for="range">Years range: </label> <input type="text" id="range" readonly /> </p> <div id="slider-range"></div> Component to which to transfer values:
TS:
import { Component, OnInit, Input, OnChanges, SimpleChanges } from '@angular/core'; import { SliderRangeComponent } from '../slider.range/slider.range.component'; @Component({ selector: 'calculations-app', templateUrl: './app/components/calculations/calculations.component.html', styleUrls: ['./app/components/calculations/calculations.component.css'], providers: [ SliderRangeComponent ] }) export class CalculationsComponent implements OnInit { range: string; constructor(private sliderRange: SliderRangeComponent) { } ngOnInit() { this.range = this.sliderRange.createSliderRange(25, 35); console.log(this.range); } }