您好。我是Angular的新手。我正在测试Angular 2.0。
我阅读了tuto here和指南here。在tuto中,模板在@Component
注释中指定,而在指南中则在@View
注释中。所以我想知道这两种方法有什么区别?我在api预览中查了一下,但解释并不清楚。
答案 0 :(得分:25)
<强>更新强>
@View()
已删除(我认为在测试版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 :(得分:4)
正如@Alexpods在回答和@Eric评论之前所说的那样,当angular2处于alpha @view时,juts是可选的,因为@view注释中的所有属性也包含在@component注释中,所以@view只是糖而已您可以将所有视图配置指定到Component中,这样就无需导入View装饰器。
@View已在最新版本中弃用,因此您无法使用它。
如果您使用静态@view注释,则可能会导致产生某种错误。所以只有组件才能容纳所有选项。
根据官员的说法,@ View元数据装饰器已在beta.10版本中弃用。
答案 2 :(得分:2)
根据Angular v2.0.0-beta.11的ChangeLogs,在中断更改时提到已删除@View()
注释(先前已弃用)。应用应该使用@Component()
装饰器。
请查看Angular2 here.
的更改日志答案 3 :(得分:1)
首先,已弃用,现在完全已消失!
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() {}