Ng2 cliを使用してbearbones ng2アプリをインストールしました。 AppModule
にschema: [ CUSTOM_ELEMENTS_SCHEMA ]
を追加し、AppComponent
テンプレートに<row></row>
を追加しました。しかし、私は-
未処理のPromise拒否:テンプレート解析エラー:「行」は既知の要素ではありません:1.「行」がAngularコンポーネントである場合、それがこのモジュールの一部であることを確認してください。2。 'row'はWebコンポーネントであり、このコンポーネントの '@ NgModule.schemas'に "CUSTOM_ELEMENTS_SCHEMA"を追加して、このメッセージを抑制します( "[ERROR->]
AppModule-
import { BrowserModule } from '@angular/platform-browser';
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [],
bootstrap: [AppComponent],
schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
})
export class AppModule { }
AppComponent-
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {}
AppComponentTemplate-
<row></row>
とても簡単です。一体何が起こっているのですか?
編集:
以下の回答はすべて満足のいくものであり、問題に対する洞察を提供します。 @yurzuiソースを提供することに対するあなたの答えが特に好きです。私はあなたにすべての受け入れられた答えを与えることができればいいのに!しかし、私は最初に@camaronを選択し、私の問題を直接解決します。 Google経由でこの質問を見つけた場合は、@ yurzui、@ camaron、および@Aravindに、この問題を解決するための+1を与えてください。
RowComponent
によってインポートされるAppModule
を追加する必要があります
imports: [RowComponent]
編集:
使用する NO_ERRORS_SCHEMA
、これはangularが存在しないコンポーネントを見つけようとしているためです。
CUSTOM_ELEMENTS_SCHEMA
は、-
セレクター名。
Changelogを見ると https://github.com/angular/angular/blob/master/CHANGELOG.md#200-rc5-2016-08-09
デフォルトでは、Angularは、名前に-が含まれる要素にある場合でも不明なプロパティの解析中にエラーになります(aka customelements)。アプリケーションがカスタム要素を使用している場合、新しいパラメーター@ NgModule.schemasに値[CUSTOM_ELEMENTS_SCHEMA]を入力します。
そうすれば、-
デリミタ付きのタグが必要であることを理解できます
if (tagName.indexOf('-') > -1) {
if (tagName === 'ng-container' || tagName === 'ng-content') {
return false;
}
if (schemaMetas.some((schema) => schema.name === CUSTOM_ELEMENTS_SCHEMA.name)) {
// Can't tell now as we don't know which properties a custom element will get
// once it is instantiated
return true;
}
}
my-row
のようなものが機能するはずです
以下はあなたの間違いです
<row>
をテンプレートとする要素がありません。<app-root>
はAppComponentのセレクターですが、AppComponentのHTMLで<row>
を使用しています。あなたの要件に基づいて、私はさまざまな修正で提案できます。あなたの望ましい結果をコメントしてください、そして私はそれらに基づいて答えを更新します。