mirror of
https://github.com/Redocly/redoc.git
synced 2025-01-31 01:54:08 +03:00
Attach controler to schemas with subschemas
This commit is contained in:
parent
7a73ba2ce5
commit
46a44f3f6c
|
@ -41,7 +41,7 @@ export class JsonSchemaLazy implements OnDestroy, AfterViewInit {
|
|||
componentFactory, null, contextInjector, null);
|
||||
this.initComponent(compRef.instance);
|
||||
this._renderer.setElementAttribute(compRef.location.nativeElement, 'class', this.location.element.nativeElement.className);
|
||||
compRef.changeDetectorRef.markForCheck();
|
||||
compRef.changeDetectorRef.detectChanges();
|
||||
return compRef;
|
||||
}).catch(err => {
|
||||
console.log(err);
|
||||
|
@ -68,7 +68,7 @@ export class JsonSchemaLazy implements OnDestroy, AfterViewInit {
|
|||
|
||||
// skip caching view with tabs inside (discriminator)
|
||||
// as it needs attached controller
|
||||
if (compRef.instance.hasDescendants) {
|
||||
if (compRef.instance.hasDescendants || compRef.instance._hasSubSchemas) {
|
||||
this._loadAfterSelf();
|
||||
return;
|
||||
}
|
||||
|
@ -85,6 +85,10 @@ export class JsonSchemaLazy implements OnDestroy, AfterViewInit {
|
|||
}
|
||||
|
||||
ngAfterViewInit() {
|
||||
if (this.optionsService.options.disableLazySchemas) {
|
||||
this._loadAfterSelf();
|
||||
return;
|
||||
}
|
||||
if (!this.auto) return;
|
||||
this.loadCached();
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
'use strict';
|
||||
|
||||
import { Input, Renderer, ElementRef } from '@angular/core';
|
||||
import { Input, Renderer, ElementRef, forwardRef } from '@angular/core';
|
||||
|
||||
import { RedocComponent, BaseComponent, SpecManager } from '../base';
|
||||
import { DropDown } from '../../shared/components/index';
|
||||
|
@ -12,13 +12,14 @@ import { Zippy } from '../../shared/components/Zippy/zippy';
|
|||
selector: 'json-schema',
|
||||
templateUrl: './json-schema.html',
|
||||
styleUrls: ['./json-schema.css'],
|
||||
directives: [JsonSchema, DropDown, JsonSchemaLazy, Zippy],
|
||||
directives: [JsonSchema, DropDown, forwardRef(() => JsonSchemaLazy), Zippy],
|
||||
detect: true
|
||||
})
|
||||
export class JsonSchema extends BaseComponent {
|
||||
schema: any;
|
||||
activeDescendant:any = {};
|
||||
hasDescendants: boolean = false;
|
||||
_hasSubSchemas: boolean = false;
|
||||
@Input() isArray: boolean;
|
||||
@Input() final: boolean = false;
|
||||
@Input() nestOdd: boolean;
|
||||
|
@ -85,6 +86,8 @@ export class JsonSchema extends BaseComponent {
|
|||
}
|
||||
|
||||
this.initDescendants();
|
||||
this._hasSubSchemas = this.schema._properties && this.schema._properties.some(
|
||||
propSchema => propSchema.type === 'object' && propSchema._pointer);
|
||||
}
|
||||
|
||||
trackByName(index: number, item: any): string {
|
||||
|
|
|
@ -15,8 +15,6 @@
|
|||
<header *ngIf="response.headers">
|
||||
Response Schema
|
||||
</header>
|
||||
<json-schema *ngIf="response.schema && options.disableLazySchemas" class="schema type" pointer="{{response.pointer}}/schema">
|
||||
</json-schema>
|
||||
<json-schema-lazy #lazySchema pointer="{{response.schema ? response.pointer + '/schema' : null}}">
|
||||
</json-schema-lazy>
|
||||
</zippy>
|
||||
|
|
Loading…
Reference in New Issue
Block a user