src/app/shared/json-viewer/json-viewer.component.ts
selector | hi-json-viewer |
styleUrls | ./json-viewer.component.scss |
templateUrl | ./json-viewer.component.html |
Methods |
Inputs |
constructor(route: ActivatedRoute)
|
||||||
Parameters :
|
obj | |
Type : any
|
|
ngOnInit |
ngOnInit()
|
Returns :
void
|
import { Component, OnInit, Input } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import * as _ from 'lodash';
@Component({
selector: 'hi-json-viewer',
templateUrl: './json-viewer.component.html',
styleUrls: ['./json-viewer.component.scss'],
})
export class JsonViewerComponent implements OnInit {
// MODE 1: use directly in components
@Input() obj: any;
constructor(protected route: ActivatedRoute) {}
ngOnInit() {
// MODE 2: use in router
if (this.route.snapshot.data.path) {
const path = this.route.snapshot.data.path;
// try parent data first
this.obj = _.get(this.route.parent, `snapshot.data.${path}`);
if (this.obj == null) {
// try self data then
this.obj = _.get(this.route.snapshot.data, path);
}
}
}
}
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->
<pre>{{ obj | json }}</pre>
./json-viewer.component.scss