@Component错误中的Angular2版本RC.6“指令”

Posted

技术标签:

【中文标题】@Component错误中的Angular2版本RC.6“指令”【英文标题】:Angular2 version RC.6 "directives" inside @Component Error 【发布时间】:2017-01-17 13:07:02 【问题描述】:

我正在使用 Angular2 并且已经从官方网站下载了 package.json。当我尝试在 @Component 装饰器中使用“指令”时,我收到了这个错误。

我附上了我的代码错误:

[ts]
Argument of type ' selector: string; template: string; directives: string; 
' is not assignable to parameter of type 'ComponentMetadataType'.

Object literal may only specific known properties, and 'directives' does not
exist in type 'ComponentMetadataType'.
(property) directives: string

这是我的代码:

import  Component  from '@angular/core';
import  PeopleListComponent  from './people-list/people-list.component';

@Component(
 selector: 'my-app',
 template: '<h1> title </h1>',
 directives: ''   //ERROR //NOT ABLE TO RECOGNIZE
)

export class AppComponent  
  title = "My title";
 

这是我的 package.json:

        
          "name": "angular2-quickstart",
          "version": "1.0.0",
          "scripts": 
            "start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ",
            "lite": "lite-server",
            "postinstall": "typings install",
            "tsc": "tsc",
            "tsc:w": "tsc -w",
            "typings": "typings"
          ,
          "license": "ISC",
          "dependencies": 
            "@angular/common": "2.0.0-rc.6",
            "@angular/compiler": "2.0.0-rc.6",
            "@angular/compiler-cli": "0.6.0",
            "@angular/core": "2.0.0-rc.6",
            "@angular/forms": "2.0.0-rc.6",
            "@angular/http": "2.0.0-rc.6",
            "@angular/platform-browser": "2.0.0-rc.6",
            "@angular/platform-browser-dynamic": "2.0.0-rc.6",
            "@angular/router": "3.0.0-rc.2",
            "@angular/upgrade": "2.0.0-rc.6",
            "core-js": "^2.4.1",
            "reflect-metadata": "^0.1.3",
            "rxjs": "5.0.0-beta.11",
            "systemjs": "0.19.27",
            "zone.js": "^0.6.17",
            "angular2-in-memory-web-api": "0.0.18",
            "bootstrap": "^3.3.6"
          ,
          "devDependencies": 
            "concurrently": "^2.2.0",
            "lite-server": "^2.2.2",
            "typescript": "^1.8.10",
            "typings":"^1.3.2"
          
        

【问题讨论】:

您使用的是哪个版本的 Angular2? 检查我对***.com/questions/39410417/…的回答 @yurzui 在我的 package.json 版本中是 1.0.0.. 是我使用的角度版本吗? 你使用的是 angular2 的 2.0.0-rc.6 版本 【参考方案1】:

directivespipes 内部 @Component 已从 Angular RC6 中弃用。在https://***.com/questions/39410417/how-to-import-component-into-another-root-component-in-angular-2查看我的回答

【讨论】:

您遇到了哪个错误?从AppComponent 中删除directives 后您尝试过吗? 我附上了我的错误。当我删除指令时,我没有收到任何错误。 Thnx 它工作了.. 我重新启动了我的机器,现在它工作了.. thnx 很多【参考方案2】:

简单...

问题在于 directives: ''

作为一个数组,它应该是 directives: [ ]

更新:在 RC6 OR 更高版本中,您拥有 @NgModule。在 RC6 OR 更高版本中,您必须声明您将使用的 pipesdirectives@NgModule 内如图所示...

import  PeopleListComponent  from './people-list/people-list.component';

@NgModule(
  imports:      [ BrowserModule],
  declarations: [ AppComponent,PeopleListComponent ],  //<<===here
  providers:    [],      
  bootstrap:    [ AppComponent ]
)

您可以从 AppComponent

@Component 中删除 directives:''

【讨论】:

你用的是哪个版本? 在我的 package.json 版本是 1.0.0.. 是我使用的角度版本吗? 查看依赖对象...你正在使用rc6 你的 AppComponent 需要 PeopleListComponent 吗? 是的,我正在尝试从“PeopleListComponent”中获取选择器,以便可以在我的 AppComponent 中使用..

以上是关于@Component错误中的Angular2版本RC.6“指令”的主要内容,如果未能解决你的问题,请参考以下文章

Angular2 代码中的 TypeScript 错误:找不到名称“模块”

Angular2 RC6:'<component> 不是已知元素'

Angular 2.0 发布:管道和指令不再是 @Component 的属性

如何在Angular2中的组件之间共享数据[重复]

绑定到angular2中的组件属性

Angular2找不到命名空间'google'