2016-06-30 11 views
0

Ich versuche, eine untergeordnete Komponente basierend auf einem Ereignis dynamisch aus der übergeordneten Komponente zu laden. Ich erhalte einige Kompilierungsfehler in der Import-Anweisung und in den ViewChild-Anweisungen. Im Folgenden sind die errorsNicht in der Lage, ComponentResolver und ViewContainerRef zu importieren

Fehler # 1

import { Component, ComponentResolver, ViewContainerRef, ViewChild, } from 'angular2/core'; 
Error: Module "...node_modules/angular2/core" has no exported member ComponentResolver 

Fehler # 2

@ViewChild("childContainer", { read: ViewContainerRef }) childContainer: ViewContainerRef; 
Error: Supplied parameters do not match any signature of call target 

Fehler # 3

this._cr.resolveComponent(ExtractorDetails).then(cmpFactory => { 
    let cmpRef = this.childContainer.createComponent(cmpFactory); 
    cmpRef.instance.QueueID = this.queueID; 
}); 
Error: Property createComponent does not exist on type 'ViewContainerRef' 

Meine package.json Datei ist wie folgt:

{ 
    "name": "ASP.NET", 
    "version": "0.0.0", 
    "dependencies": { 
    "angular/http": "2.0.0-rc.1", 
    "angular2": "2.0.0-beta.17", 
    "bootstrap": "^3.3.5", 
    "es6-promise": "^3.0.2", 
    "es6-shim": "^0.33.3", 
    "jquery": "^2.2.4", 
    "reflect-metadata": "0.1.2", 
    "rxjs": "5.0.0-beta.2", 
    "systemjs": "0.19.22", 
    "zone.js": "0.5.15" 
    }, 
    "devDependencies": { 
    "gulp": "3.8.11", 
    "gulp-concat": "2.5.2", 
    "gulp-cssmin": "0.1.7", 
    "gulp-uglify": "1.2.0", 
    "rimraf": "2.2.8" 
    } 
} 

Meine übergeordnete Komponente sieht wie folgt aus import {Komponente, ComponentResolver, ViewContainerRef, ViewChild,} aus 'angular2/core'; Importieren Sie {ExtractorDetails} von './ExtractorDetails'; ..

@Component({ 
    selector: 'kendo-grid', 
    templateUrl: './HTML/Admin/KendoGrid.html', 
    providers: [Configuration, Constants], 
    directives: [Grid] 
}) 
export class ExtractorGrid { 
    options: any; 
    rowObject: any; 
    extractorDetails: any; 
    public component: any; 
    queueID: number; 

    @ViewChild("childContainer", { read: ViewContainerRef }) childContainer: ViewContainerRef; 

    constructor(private configSetttings: Configuration, private constants: Constants, private viewContainer: ViewContainerRef, private _cr: ComponentResolver) { 
     this.setUpGridOptions(); 
    } 

    onChange(event) { 
     this.rowObject = event.target; 

     this._cr.resolveComponent(ExtractorDetails).then(cmpFactory => { 
      let cmpRef = this.childContainer.createComponent(cmpFactory); 
      cmpRef.instance.QueueID = this.queueID; 
     }); 
    } 

    .... 

} 

Kann mir jemand zeigen, welche Version angular2 Ich brauche zu verweisen, wenn ich ComponentResolver und ViewContainerRef verwenden müssen?

+1

Ich werde vorschlagen, dass Sie die neuen angular2-Versionen verwenden, basierend auf Release-Kandidat 3 oder sogar 4. rc4 wurde gerade veröffentlicht https://github.com/angular/angular/blob/master/CHANGELOG.md (Viele Dinge sind ganz anders als im Beta-Stadium) – Gabi

+0

Mit RC3 aktualisiert, "Abhängigkeiten": {"angular/http": "2.0.0-rc.1", "angular2": "2.0.0-rc.3" , ...} immer noch den gleichen Fehler. irgendwelche Ideen ? – Krishnan

+0

Haben Sie die Importe von 'angular2/xxx' in' @ angular/xxx' geändert? –

Antwort

0

ComponentResolver wurde eingestellt und entfernt. Verwenden Sie stattdessen ComponentFactoryResolver

Verwandte Themen