嗨。我是Angular的新手。我正在測試Angular 2.0。Angular 2.0。差@ @ @組件
我看了tuto here和指南here。在tuto中,模板在@Component
註釋中指定,而在指南中則在@View
註釋中指定。所以我想知道這兩種方法有什麼區別?我在api預覽中查了一下,但是解釋並不清楚。
嗨。我是Angular的新手。我正在測試Angular 2.0。Angular 2.0。差@ @ @組件
我看了tuto here和指南here。在tuto中,模板在@Component
註釋中指定,而在指南中則在@View
註釋中指定。所以我想知道這兩種方法有什麼區別?我在api預覽中查了一下,但是解釋並不清楚。
更新
@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() {}
此功能尚未實施。
根據伊戈爾在https://github.com/angular/angular/pull/4566中的評論,未來這可能不會成立,視圖切換邏輯將在別處定義,可能通過DI,我們將看到。「 – Chandermani
是否有一個組件具有多個視圖,如答案中所述? –
@alexpods這也不適合我'媒體類型'或我不能正確理解你說的。請您在同一個組件中使用兩個'@ view'爲我提供工作代碼的演示(plnkr或小提琴)。 –
正如在評論的答案,@Eric @Alexpods時angular2是阿爾法@view之前說的是凸狀部可選的,因爲在@view標註的所有屬性也包含在@Component註解中@view只是糖您可以將所有視圖配置指定到組件中,因此不需要導入視圖裝飾器。
@View已在最新版本被棄用,所以你不能使用它。
如果您使用靜態@view註釋它可能會導致產生某種錯誤。所以只有組件纔是可以容納所有選項的地方。
根據官員的說法,@View元數據裝飾器已在beta.10發行版中棄用。
作爲每角V2.0.0-beta.11的更改日誌,則下破的更改@View()
註釋(先前已棄用)已被移除提及。應用程序應該使用@Component()
裝飾器。
請在Angular2 here.
的變更日誌看看首先,這被廢棄,現在已完全不見了!
2.0.0-beta.10(2016-03-17):@View()註釋(以前不推薦使用)已被刪除。應用程序應該使用@Component()裝飾器。
因此,您不必再擔心@View之前的介紹,因爲早期的想法是組件中可能存在多個視圖(例如,像移動視圖),並且用法與如下:
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() {}
沒有真正的區別。 ['@View只是可選的](https://github.com/angular/angular/pull/4566) –
請看看[這裏](http://stackoverflow.com/a/40215048/1592107) – Shivam