Eckige 2 – Einstellung templateUrl aus einer Variablen?

Ich bin versucht, in einer Vorlagen-URL aus dem Wert gezogen wird, dass aus einer JSON-Datei. Dieser Wert ist dann eine URL, wo Eckige sollte, gehen Sie zum abrufen der Vorlage Inhalt. Grundsätzlich bin ich versucht zu kommen mit irgendeiner Art von Lösung, die es ermöglicht, die gewünschte HTML-Vorlage festgelegt werden, die der Nutzer im backend, und mein Winkel-Dienst die Anfrage an S3 wird der templateUrl.

import { Component, OnInit } from '@angular/core';
import { GlobalDirective } from '../../global.directive';

@Component({
selector: 'terms-form',

//need to be able to specify this templateUrl as a variable from the JSON sitting on S3.  

templateUrl: URL value from JSON,  
styleUrls: ['./terms.component.css']
})

export class TermsFormComponent implements OnInit {

constructor(public globalDirective: GlobalDirective) {}


ngOnInit() {
    this.globalDirective.getData();

}
}

Fand ich einige ähnliche Fragen hier, aber nichts, das hat für mein Problem. Ich bin mit @angular/cli: 1.0.1

InformationsquelleAutor Anton Emery | 2017-04-26



2 Replies
  1. 1

    Ich denke, man kann es nicht tun, aber man kann immer Spritzen, ein template.

    @Component({
      selector: 'my-cmp',
      template: `
          <ng-container [ngTemplateOutlet]="template" [ngOutletContext]="{name: name}"></ng-container>
      `,
    })
    export class MyCmp {
      @Input() template:  TemplateRef<any>;
      @Input() name: string;
    
      constructor() {
      }
    }
    
    @Component({
      selector: 'my-app',
      template: `
         <my-cmp [template]="one" [name]="'julia'"></my-cmp>
         <my-cmp [template]="two" [name]="'kate'"></my-cmp>
    
         <ng-template #one><div>here is a template one {{name}}</div></ng-template>
         <ng-template #two><div>here is a template two {{name}}</div></ng-template>
      `,
    })
    export class App {
      @ViewChild('one',  { read: TemplateRef }) one: TemplateRef<any>;
      @ViewChild('two',  { read: TemplateRef }) two: TemplateRef<any>;
    
      constructor() {
      }
    }
  2. 0

    Hey, es ist eine Weile her, aber versuchen Sie dies:
    in meinem Fall im mit meinem Umwelt-Datei zu liefern, die Abhängigkeiten

    //This is the only way to use resource files dependency injection (expect for using template):
    //encapsulating the environment variable in another variable prevents it from being undefined inside @component
    //using "" + the variable prevents Error: Cannot find module "." at webpackMissingModule 
    var tmp = environment;
    @Component({
      selector: 'my-selector',
      templateUrl: "" + tmp.html,
      styleUrls: ["" + tmp.css]
    })

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.