2015-10-28 6 views
14

こんにちは。私はAngularが初めてです。 Angular 2.0をテストしています。角度2.0。相違@View @Component

私はツートhereとガイドhereを読んでいます。チュートではテンプレートは@Component注釈で指定されていますが、ガイドでは@View注釈にあります。だから私は2つのアプローチの違いは何ですか?私はapiのプレビューで見上げたが説明は明確ではなかった。

+2

実際の違いはありません。 ['@Viewは単なる選択肢です。]](https://github.com/angular/angular/pull/4566) –

+0

ご覧ください[http://java.com/ja/40215048/1592107] – Shivam

答えて

21

@View()を除去したアップデート(私はbeta.13で考え、CHANGELOG.mdはしかし、それを言及していません)。

オリジナル

それらの間に違いはありません。すべてのビューの設定をComponentに指定することができますので、Viewデコレータをインポートする必要はありません。

同時に、Viewデコレータが存在する必要があります。なぜなら、言語やメディアの種類によって同じコンポーネントに対して異なるビューを使用できるからです。例:

@Component(/* ... */) 
@View({ 
    media: 'desktop', 
    template: 'Template for desktop' 
}) 
@View({ 
    media: 'mobile', 
    template: 'Template for mobile' 
}) 
extends class Component() {} 

この機能はまだ実装されていません。

+1

これはIgorによると、将来的にはhttps://github.com/angular/angular/pull/4566のコメントでは成立しないかもしれません。 "ビュースイッチングロジックはDI経由で可能性があります。 – Chandermani

+0

回答に記載されているように、1つのコンポーネントに複数のビューがありますか? –

+0

@alexpodsこれも私の 'メディアタイプ'にはうまくいかないか、あなたの言ったことを正しく理解していません。同じコンポーネントで2つの '@ view'を使って作業コードのデモ(plnkrまたはfiddle)を私に提供してください。 –

3

ang2がalpha @viewにある前の@Alexpodsは@Alexpodsのコメントで、コメントの@Ericは@viewアノテーションのすべてのプロパティも@componentアノテーションに含まれているので、@viewはちょうどsugarですすべてのビュー設定をComponentに指定できるので、Viewデコレータをインポートする必要はありません。ベータ

に更新

@Viewは、最新のリリースでは廃止されました、だから、あなたはそれを使用することはできません。

まだ@viewアノテーションを使用している場合は、何らかのエラーが発生する可能性があります。コンポーネントのみがすべてのオプションを保持する場所です。

@Viewメタデータデコレータは、役員一人あたり、beta.10リリースでは廃止されました。

2

変更ログの角度v2.0.0-beta.11によると、@View()アノテーション(以前は廃止予定)が削除された変更点があります。アプリでは代わりに@Component()デコレータを使用する必要があります。

はAngular2 here.

の変更ログで見て、すべての
1

まず、このを非推奨となりましたを完全に消えていたを持っていてください!

2.0.0-beta.10(2016-03-17):@View()アノテーション(以前は廃止予定)は削除されました。アプリは@Component()デコレータを代わりに使用する必要があります。

これ以上心配する必要はありません。初期の考えでは、コンポーネント内に複数のビューが存在する可能性があり(例:モバイルビューなど)、その使用法は以下:

import { Component } from '@angular/core'; 

    @Component({ 
     selector: 'app-root', 
     styleUrls: ['./app.component.scss']}) 
    @View({ 
     media: 'desktop', 
     template: '<h1>tablet<h1>' 
    }) 
    @View({ 
     media: 'mobile', 
     template: '<h1>mobile<h1>' 
    }) 

    extends class Component() {} 
関連する問題