2.2 template templateUrl 声明模板 - RLwu/angular-start GitHub Wiki

template/templateUrl - 声明模板

组件的Component注解最重要的属性两个属性之一就是template - 模板。 Angular2的模板是兼容HTML语法的,这意味着你可以使用任何标准的HTML标签编写 组件模板。

所以,在最简单的情况下,一个Angular2组件的模板由标准的HTML元素构成,看起来就是 一段HTML码流。Angular2将原封不同地渲染这段模板:

html-template

有两种方法为组件指定渲染模板:

1. 内联模板

可以使用组件的View注解中的template属性直接指定内联模板:

@Component({
    template : `<h1>hello</h1>
                <div>...</div>`
})

在ES6中,使用一对`符号就可以定义多行字符串,这使得编写内联的模板轻松多了。

2. 外部模板

也可以将模板写入一个单独的文件:

<!--ezcomp-tpl.html-->
<h1>hello</h1>
<div>...</div>

然后在定义组件时,使用templateUrl引用外部模板:

@Component({
    templateUrl : "ezcomp-tpl.html"
})

例子

<!--index.html-->

<!doctype html>
<html>
<head>
	<meta charset="utf-8">
    <title>ComponentMetadat.template</title>
</head>
<body>
    <ez-app><img src="img/wait.gif"></ez-app>
    <script type="text/javascript" src="lib/angular2.beta.stack.min.js"></script>
</body>
</html>

<!--app/app.component.ts-->

import {Component} from "angular2/core";
import {bootstrap} from "angular2/platform/browser";

@Component({
	selector : "ez-app",
	template : `
		<h1>Hello,Angular2</h1>
		<p>
			使用ES6开发Angular2应用的一个好处就是,可以不用拼接模板字符串了。
		</p>
		<ul>
			<li>在模板中可以使用任何标准的HTML元素</li>
			<li>如果模板定义在单独的文件里,可以使用templateUrl引入</li>
		</ul>
	`
})
class EzApp{}

bootstrap(EzApp);

下一节:styles/styleUrls - 设置样式

⚠️ **GitHub.com Fallback** ⚠️