簡體   English   中英

如何在angular2中從構造函數傳遞字符串參數或數字

[英]how can I pass string parameter or number from constructor in angular2

在typescript的angular2中,我需要按以下方式在構造函數中傳遞字符串參數或偶數參數:Constructor(_para:string){},但生成錯誤,調試器不斷告訴我:

NoProviderError {消息:“沒有字符串提供者!(應用程序->字符串)”,堆棧:“錯誤:DIException↵at NoProviderError.BaseExc…ularjs.org / 2.0.0-beta.8 / angular2.dev.js:11284 :19)”

如果我刪除_para:string,它將起作用.....這是plnkr中的Demoe:

http://plnkr.co/edit/t7serY3L6LtvzYc5xHtL?p=預覽

and here is the code : 
//our root app component
import {Component} from 'angular2/core'

@Component({
  selector: 'my-app',
  providers: [],
  template: `
    <div>
      <h2>Hello {{name}}</h2>


    </div>
  `,
  directives: []
})
export class App {
  constructor(_para:string) {

    this.name = 'Angular2'
  }
}

對於由Angulars依賴項注入(DI)創建的組件,它將嘗試查找提供程序,並使用構造函數參數的類型作為鍵來查找一個。

諸如stringnumberbooleanObject類的原始類型不能用作鍵。 如果要使用此類“通用”類型,則需要一個人工密鑰。 除類型外,DI還支持字符串或OpaqueToken作為鍵。 對於此類人為鍵,您需要使用@Inject()裝飾器。

bootstrap(MyApp, [provide('para': {useValue: 'Hello World!'})]);

@Component({
  selector: 'my-app',
  providers: [],
  template: `
    <div>
      <h2>Hello {{name}}</h2>


    </div>
  `,
  directives: []
})
export class App {
  constructor(@Injet('para') _para:string) {

    this.name = 'Angular2'
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM