参数与构造函数中的私有参数不匹配
Parameter mismatch with private parameters in constructor
TL:DR:在尝试使用私有构造函数参数时获得错误Supplied parameters do not match any signatures of call target
。constructor (private http: Http) {}
我在Angular2中设置私有参数时遇到了一些麻烦。我曾经认为,当一个属性在构造函数中声明为私有时,它不需要传入。这对我来说似乎很奇怪,我猜我对这一点的理解是错误的,但我找不到任何信息表明不是这样。下面是我的意思的一个例子:
constructor (private http: Http) {}
from https://angular.io/docs/ts/latest/guide/server-communication.html
我试图实现同样的事情,但我得到以下错误:Supplied parameters do not match any signatures of call target
,这似乎意味着需要将Http实例传递给构造函数。
该程序是为"卡片"的"画廊"。卡片从使用Http的CardService传递。这段代码目前在mainGallery: Gallery = new Gallery();
import { Component } from '@angular/core';
import { Gallery } from './gallery';
import { CardService } from './card.service';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
providers: [ CardService ]
})
export class AppComponent {
title = 'app works!';
mainGallery: Gallery = new Gallery();
}
这是画廊的样子:
@Component({
providers: [CardService]
})
export class Gallery{
cards: Card[] = [];
constructor(private cardService: CardService){
}
}
如果我试图在card服务的构造函数中使用private http: Http
,我也会得到相同类型的错误。任何帮助都非常感激!
编辑:这是我的NgModule:
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [],
bootstrap: [AppComponent]
})
我认为你不能简单地创建一个new Gallery()
,你必须要求相关的注入器为你获取一个,因为你没有向Gallery
的构造函数发送任何参数,这是注入器的工作。
阅读这里:https://angular.io/docs/ts/latest/guide/dependency-injection.html
- 高库存时期时间与时区不匹配
- react路由器使用简单的javascript路由器配置来处理不匹配的路径
- Javascript:图像与单选按钮的值不匹配
- 文本区域(jQuery)的结果不匹配
- 如果状态不匹配,则缩小为丑陋
- 角度指令控制器:参数不是函数,未定义
- WebSQL:处理SQL时出错:数量为''语句字符串中的s与参数计数不匹配
- Sys.ParameterCountException:参数计数不匹配
- 过滤器 AngularJS REST JSON 数据:错误:badcfg 响应与配置的参数不匹配
- 使用 q 参数时,名义不匹配
- 数据库当前版本与' oldVersion '参数不匹配
- 参数与构造函数中的私有参数不匹配
- JSHint表示“参数类型不匹配”;对于jQuery(这个)
- Javascript apply()参数不匹配
- 返回promise会导致“提供的参数不匹配”;在打印稿
- Typescript提供的参数不匹配调用目标的任何签名
- 参数/回调不匹配
- Spring Data JPA 接收参数值 [2] 与预期类型 [java.lang.String (n/a)] 不匹配
- “参数计数不匹配”发生在 asp.net 中按钮的单击事件上
- sAjaxSource URL 与输入的参数不匹配