Сайт на базе Laravel с угловым компонентом - PullRequest
0 голосов
/ 21 мая 2019

Мне нужно создать обычный сайт (без SPA !) С Laravel PHP Framework и с Angular компонентами на этом сайте.

Например .: enter image description here

Возможно ли это? Если да, как я могу это сделать?

1 Ответ

0 голосов
/ 21 мая 2019

Возможно, но это настоящая боль в а **.Я сделал один с Java Spring в прошлом месяце.Как правило, вам нужно загрузить каждый элемент после проверки вручную, существует ли этот элемент

app.module.ts

import { NgModule, Inject } from '@angular/core';
import { BrowserModule, DOCUMENT }  from '@angular/platform-browser';

// Add all components to this array
const components: any[] = [
  //normal components goes here
    LoginFormComponent
];

// Bootstrap components
const mainComponents: any[] = [
  AngularComponent
];

@NgModule({
  imports: [
    BrowserModule,
    HttpClientModule,
    .
    .
    .
  ],
  providers: [...],
  declarations: components,
  entryComponents: mainComponents
})
export class AppModule { 
  private browser_document: any;

  // this bootstraps each main component
  ngDoBootstrap(app: any) {
    for(let component of mainComponents) {
      if (this.browser_document.getElementsByTagName(component.selector).length > 0) app.bootstrap(component);
    }
  }

  constructor(@Inject(DOCUMENT) private document: any) {
    this.browser_document = document;
  }
}

angular.component.ts

import { Component } from "@angular/core";

@Component({
    selector: 'angular-component',
    templateUrl: './valuation.requests.view.component.html'
})
export class AngularComponent {
    static selector: String = 'angular-component'; // this is important
}

что-то.html

<angular-component></angular-component>

По сути, вам нужно перезагрузить каждый подкомпонент после проверки, существует ли он на DOM

PS: основные компоненты должны добавить массивы components и mainComponents

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...