2016-07-14 17 views
9

Angular 2 uygulamamı oluşturmak için ASP.Net kullanıyorum ve sahip olduğum tek RAZOR sayfası _Layout.cshtml ve RAZOR'dan bazı başlangıç ​​verilerini önyüklemeli bileşenime aktarmayı çok isterdim, ancak Çalışmıyor gibiyim. Benim _Layout.cshtml yılında Angular 2'de bir uygulama girişini app.component'e geçirmek mümkün mü?

, şu var:
<my-app test="abc"></my-app> 

ve benim app.component.ts içinde

, ben:

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

@Component({ 
    selector: 'my-app', 
    template: "<div id='mainBody'>Test:{{test}}</div>", 
    directives: [MenuBarComponent, ROUTER_DIRECTIVES] 
}) 
export class AppComponent { 
    @Input() test; 
} 

Testim değişken boştur. Bunu yapmanın farklı bir yolu var mı, yoksa mümkün değil mi?

+0

http://stackoverflow.com/questions/37337185/passing-asp-net-server-parameters-to-angular-2-app/37384405#37384405: DOM doğrudan niteliğini almak gerekir – yurzui

cevap

9

Ana bileşenler için girişler (önyüklemeli olanlar) kullanmak mümkün değildir.

@Component({ 
    selector: 'my-app', 
    template: "<div id='mainBody'>Test:{{test}}</div>", 
    directives: [MenuBarComponent, ROUTER_DIRECTIVES] 
}) 
export class AppComponent { 
    constructor(private elementRef:ElementRef) { 
    this.test = this.elementRef.nativeElement.getAttribute('test'); 
    } 
} 
+0

_Layout'ta global bir javascript nesnesi oluşturmak istediğimde, TypeScript yapıcımdaki buna nasıl erişirim? – Scottie

+0

NgModule'inizde bir [InjectionToken] aracılığıyla bir sağlayıcı olarak ekleyebilirsiniz (http://angular.io/guide/dependency-injection-in-action#injectiontok‌ tr) –

İlgili konular