2016-11-29 80 views
0

EJS变量Angular2部件

我特林传递模型数据对象,它是从EJS模板到angular2部件JSON对象。这里是我的组件代码,它有一个名为测试的输入。我列出了我试图使其工作的选项。@input不是在角2组分工作

import {Component, OnInit, Input } from "@angular/core"; 
import { Router } from "@angular/router"; 
import {Location} from '@angular/common'; 

declare var $:JQueryStatic; 


@Component({ 
    selector: "app-loader", 
    templateUrl: "views/app-index.html" 
}) 

export class AppComponent { 
    public viewType; 

    @Input() test: string; 

    constructor(private router: Router, private location: Location) { 
    // console.log(this.providers); 
    switch (location.path()) { 
     case '/login': 
     this.viewType = "login"; 
     break; 
     default: 
     this.viewType = "/"; 
     break; 
    } 
    } 

    ngOnInit() { 
    console.log(this.test); 
    $("app-loader").addClass("md"); 
    } 
} 

薪火EJS模板数据如下:

选项1:

<app-loader [test]="'<%= JSON.stringify(providers) %>'">Loading...</app-loader> 

选项2:

<app-loader [test]="providers">Loading...</app-loader> 
+2

如果'AppComponent'是根组件然后它不会工作http://stackoverflow.com/questions/39614451/angular-2-input-binding -does - 不工作/ 39614592#39614592 – yurzui

回答

1

如果你想取出这个输入数据尝试

<app-loader test="yourdata as string">Loading...</app-loader> 

在该应用

constructor(private elementRef: ElementRef,) { 
    var native = this.elementRef.nativeElement; 
    var shadow = native.getAttribute("test"); 
     }