本文是从angular.io官网练习的栗子,其中有一些小技巧,文件除启动文件app.ts其他都放在app.ts平级目录route-app下
a链接中routerLink的值与RouteConfig中name对应,name可不与component同名,此处我的理解是点击时routerLink传递name值匹配RouterConfig中的name,在根据对用的component选软组件;path值貌似可以任意写,会对应反映在浏览器搜索框中。
3.HomeApp和Article子组件,因为是测试,写的很简单
<pre>
import {Component} from 'angular2/core';
@Component({ selector: 'home', templateUrl: 'hello6/app/route-test/home.html'})
export class HomeApp {}
</pre>
<pre>
import {Component} from 'angular2/core';
@Component({ selector: 'home', templateUrl: 'hello6/app/route-test/home.html'})
export class HomeApp {}
</pre>
template随便写点html文件就可以,只是测试路由是否正确;
这里官方其实是推荐直接用template和styles将模板和样式写在组件里面,这样导入组件后不用管路径,但是如果将模板和样式分开写在单独文件夹时,根据组件放的路径不同,templateUrl和stylesUrl是要更改的。
4 运行测试,这个可以直接放在官网中quickstart中运行,index.html的代码如下:
<pre>
<html>
<!-- 1. Load libraries -->
<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/rxjs/bundles/Rx.js"></script>
<script src="node_modules/angular2/bundles/router.dev.js"></script> //这个必须加,是router模块,不加报各种错误
<script src="node_modules/angular2/bundles/angular2.dev.js"></script>
<!-- 2. Configure SystemJS -->
<script>
System.config({
packages: {
dist: {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('dist/app')
.then(null, console.error.bind(console));
</script>
<!-- <base href="/"> --> //这个我在另一个项目文件中不加报错,no Base_href什么的忘了,但在quickstart中可不加
</head>
<body>
<my-app>Loading...</my-app>
<hello-world></hello-world>
<work-form></work-form>
<route-test></route-test> //不要忘了加自定义标签哦
</body>
</html>
</pre>