<!DOCTYPE html>
<html>
<head>
  <!-- Set the base href -->
  <script>document.write('<base href="' + document.location + '" />');</script>

  <Meta name="viewport" content="width=device-width,initial-scale=1">
  <link rel="stylesheet" href="styles.css">

  <!-- IE required polyfills,in this exact order -->
  <script src="lib/es6-shim.min.js"></script>
  <script src="lib/system-polyfills.js"></script>
  <script src="lib/shims_for_IE.js"></script>

  <script src="lib/angular2-polyfills.js"></script>
  <script src="lib/system.js"></script>
  <script src="lib/typescript.js"></script>
  <script src="lib/Rx.js"></script>
  <script src="lib/angular2.dev.js"></script>

  <!-- Add the router library -->
  <script src="lib/router.dev.js"></script>

  <script>
    System.config({
      transpiler: 'typescript',typescriptOptions: { emitDecoratorMetadata: true },packages: {'app': {defaultExtension: 'ts'}}
    });
    System.import('app/main')
            .then(null,console.error.bind(console));
  </script>
</head>

<body>
<my-app>loading...</my-app>
</body>

</html>

</html>

import {bootstrap}        from 'angular2/platform/browser';
import {ROUTER_PROVIDERS} from 'angular2/router';

import {AppComponent}     from './app';

// Add these symbols to override the `LocationStrategy`
//import {provide}           from 'angular2/core';
//import {LocationStrategy,//        HashLocationStrategy} from 'angular2/router';

bootstrap(AppComponent,[ROUTER_PROVIDERS,//provide(LocationStrategy,//       {useClass: HashLocationStrategy}) // .../#/crisis-center/
]);


/*
 copyright 2016 Google Inc. All Rights Reserved.
 Use of this source code is governed by an MIT-style license that
 can be found in the LICENSE file at http://angular.io/license
 */

import {Component} from 'angular2/core';
import {RouteConfig,ROUTER_DIRECTIVES} from 'angular2/router';

import {HeroListComponent}     from './heroes/hero-list.component';
import {HeroDetailComponent}   from './heroes/hero-detail.component';
import {HeroService}           from './heroes/hero.service';

@Component({
    selector: 'my-app',template: `
    <nav>
      <a [routerLink]="['Heroes']">Heroes</a>
    </nav>
    <router-outlet></router-outlet>
  `,providers:  [ HeroService],directives: [ROUTER_DIRECTIVES]
})
@RouteConfig([
    {path: '/heroes',name: 'Heroes',component: HeroListComponent},{path: '/hero/:id',name: 'HeroDetail',component: HeroDetailComponent},])
export class AppComponent { }

import {Component,OnInit}   from 'angular2/core';
import {Hero,HeroService}   from './hero.service';
import {Router,RouteParams} from 'angular2/router';

@Component({
  template: `
    <ul class="items">
      <li *ngFor="#hero of heroes"
        [class.selected]="isSelected(hero)"
        (click)="onSelect(hero)">
        <span class="badge">{{hero.id}}</span> {{hero.name}}
      </li>
    </ul>
  `
})
export class HeroListComponent implements OnInit {
  heroes: Hero[];

  private _selectedId: number;

  constructor(
    private _service: HeroService,private _router: Router,routeParams: RouteParams)
  {
      this._selectedId = +routeParams.get('id');
  }

  isSelected(hero: Hero) { return hero.id === this._selectedId; }

  onSelect(hero: Hero) {
    this._router.navigate( ['HeroDetail',{ id: hero.id }] );
  }

  ngOnInit() {
    this._service.getHeroes().then(heroes => this.heroes = heroes)
  }
}

import {Component,OnInit}  from 'angular2/core';
import {Hero,HeroService}   from './hero.service';
import {RouteParams,Router} from 'angular2/router';

@Component({
  template: `
  <div *ngIf="hero">
    <h3>"{{hero.name}}"</h3>
    <div>
      <label>Id: </label>{{hero.id}}</div>
    <div>
      <label>Name: </label>
      <input [(ngModel)]="hero.name" placeholder="name"/>
    </div>
    <p>
      <button (click)="gotoHeroes()">Back</button>
    </p>
  </div>
  `,})
export class HeroDetailComponent implements OnInit  {
  hero: Hero;

  constructor(
    private _router:Router,private _routeParams:RouteParams,private _service:HeroService){}

  ngOnInit() {
    let id = this._routeParams.get('id');
    this._service.getHero(id).then(hero => this.hero = hero);
  }

  gotoHeroes() {
    let heroId = this.hero ? this.hero.id : null;
    this._router.navigate(['Heroes',{id: heroId} ]);
  }
}

import {Injectable} from 'angular2/core';

export class Hero {
  constructor(public id: number,public name: string) { }
}

@Injectable()
export class HeroService {
  getHeroes() { return heroesPromise; }

  getHero(id: number | string) {
    return heroesPromise
      .then(heroes => heroes.filter(h => h.id === +id)[0]);
  }
}

var HEROES = [
	new Hero(11,'Mr. Nice'),new Hero(12,'Narco'),new Hero(13,'Bombasto'),new Hero(14,'Celeritas'),new Hero(15,'Magneta'),new Hero(16,'RubberMan')
];

var heroesPromise = Promise.resolve(HEROES);

/* Master Styles */
h1 {
  color: #369; 
  font-family: Arial,Helvetica,sans-serif;   
  font-size: 250%;
}
h2,h3 { 
  color: #444;
  font-family: Arial,sans-serif;   
  font-weight: lighter;
}
body { 
  margin: 2em; 
}
body,input[text],button { 
  color: #888; 
  font-family: Cambria,Georgia; 
}
a {
  cursor: pointer;
  cursor: hand;
}
button {
  font-family: Arial;
  background-color: #eee;
  border: none;
  padding: 5px 10px;
  border-radius: 4px;
  cursor: pointer;
  cursor: hand;
}
button:hover {
  background-color: #cfd8dc;
}
button:disabled {
  background-color: #eee;
  color: #aaa; 
  cursor: auto;
}

/* Navigation link styles */
nav a {
  padding: 5px 10px;
  text-decoration: none;
  margin-top: 10px;
  display: inline-block;
  background-color: #eee;
  border-radius: 4px;
}
nav a:visited,a:link {
  color: #607D8B;
}
nav a:hover {
  color: #039be5;
  background-color: #CFD8DC;
}
nav a.router-link-active {
  color: #039be5;
}

/* items class */
.items {
  margin: 0 0 2em 0;
  list-style-type: none;
  padding: 0;
  width: 24em;
}
.items li {
  cursor: pointer;
  position: relative;
  left: 0;
  background-color: #EEE;
  margin: .5em;
  padding: .3em 0;
  height: 1.6em;
  border-radius: 4px;
}
.items li:hover {
  color: #607D8B;
  background-color: #DDD;
  left: .1em;
}
.items li.selected:hover {
  background-color: #BBD8DC;
  color: white;
}
.items .text {
  position: relative;
  top: -3px;
}
.items {
  margin: 0 0 2em 0;
  list-style-type: none;
  padding: 0;
  width: 24em;
}
.items li {
  cursor: pointer;
  position: relative;
  left: 0;
  background-color: #EEE;
  margin: .5em;
  padding: .3em 0;
  height: 1.6em;
  border-radius: 4px;
}
.items li:hover {
  color: #607D8B;
  background-color: #DDD;
  left: .1em;
}
.items li.selected {
  background-color: #CFD8DC;
  color: white;
}

.items li.selected:hover {
  background-color: #BBD8DC;
}
.items .text {
  position: relative;
  top: -3px;
}
.items .badge {
  display: inline-block;
  font-size: small;
  color: white;
  padding: 0.8em 0.7em 0 0.7em;
  background-color: #607D8B;
  line-height: 1em;
  position: relative;
  left: -1px;
  top: -4px;
  height: 1.8em;
  margin-right: .8em;
  border-radius: 4px 0 0 4px;
}

/* everywhere else */
* { 
  font-family: Arial,sans-serif; 
}


/*
copyright 2016 Google Inc. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://angular.io/license
*/

跟着angularjs2官方文档学习四的更多相关文章

  1. 浅谈angularJS2中的界面跳转方法

    今天小编就为大家分享一篇浅谈angularJS2中的界面跳转方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  2. AngularJS2 与 D3.js集成实现自定义可视化的方法

    本篇文章主要介绍了ANGULAR2 与 D3.js集成实现自定义可视化的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  3. 利用VS Code开发你的第一个AngularJS 2应用程序

    这篇文章主要给大家介绍了关于利用VS Code如何开发你的第一个AngularJS 2应用程序的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友下面来一起看看吧。

  4. 用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式)

    这篇文章主要介绍了用WebStorm进行Angularjs 2开发(环境篇:Windows 10,Angular-cli方式),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  5. 为什么我在Angular 2中加载rxjs-extensions时遇到错误?

    我一直在逐步跟踪angular2网站上的英雄教程,但是当我到达教程的http部分时,我遇到了一些障碍.为什么我一直在控制台中收到这些错误?

  6. AngularJS 2.0编译为ES6

    我开始收到TypeScript编译器错误:我可以通过删除–module“amd”TypeScript编译器选项来解决它.这确实提出了一个问题:没有指定amd,ES6使用什么样的模块格式?问题2:修改TypeScript编译器选项后,它们显示如下:我开始收到以下错误:有没有人见过这个?

  7. AngularJS2 学习笔记——Async Data Binding

    当有新值时,异步管道给组件置一个变化确认的标记。当组件销毁时,异步管道取消订阅避免内存泄露。点击ThisexamplebindsaPromisetotheview.Clickingthe销毁按钮将Promise销毁。下面示例是在view上绑定timeObservable,Observable持续更新当前的时间。

  8. AngularJS2 学习笔记——angularjs2架构

    Angular应用是由模块化的,它有自己的模块系统:NgModules。每个Angular应该至少要有一个模块(根模块),一般可以命名为:AppModule。Angular有三种类型的视图类:组件、指令和管道。Angular会基于这些信息创建和展示组件及其视图。依赖注入Angular能通过查看构造函数的参数类型,来得知组件需要哪些服务。

  9. for-each in ionic2 with angularjs2

    我用IONIC-2Beta版制作了一个应用程序.我想使用for-each循环.是否可以在angular-V2中使用?谢谢.首先在Component中,您必须声明要显示的数组:如果要更改代码中的值,可以通过执行以下操作来执行此操作:然后在您的视图中,您可以像这样打印它们:请注意部分*ngFor=“让displayData的数据”在哪里:>displayData是我们在Component中定义的数组>让…的数据定义一个名为data的新变量,它代表displayData数组的每个元素.>我们可以使用该数据变量访

  10. 在Angular2中,如何返回服务值?

    有人可以更详细地解释每个部分:呢?

随机推荐

  1. Angular2 innerHtml删除样式

    我正在使用innerHtml并在我的cms中设置html,响应似乎没问题,如果我这样打印:{{poi.content}}它给了我正确的内容:``但是当我使用[innerHtml]=“poi.content”时,它会给我这个html:当我使用[innerHtml]时,有谁知道为什么它会剥离我的样式Angular2清理动态添加的HTML,样式,……

  2. 为Angular根组件/模块指定@Input()参数

    我有3个根组件,由根AppModule引导.你如何为其中一个组件指定@input()参数?也不由AppModalComponent获取:它是未定义的.据我所知,你不能将@input()传递给bootstraped组件.但您可以使用其他方法来做到这一点–将值作为属性传递.index.html:app.component.ts:

  3. angular-ui-bootstrap – 如何为angular ui-bootstrap tabs指令指定href参数

    我正在使用角度ui-bootstrap库,但我不知道如何为每个选项卡指定自定义href.在角度ui-bootstrap文档中,指定了一个可选参数select(),但我不知道如何使用它来自定义每个选项卡的链接另一种重新定义问题的方法是如何使用带有角度ui-bootstrap选项卡的路由我希望现在还不算太晚,但我今天遇到了同样的问题.你可以通过以下方式实现:1)在控制器中定义选项卡href:2)声明一个函数来改变控制器中的散列:3)使用以下标记:我不确定这是否是最好的方法,我很乐意听取别人的意见.

  4. 离子框架 – 标签内部的ng-click不起作用

    >为什么标签标签内的按钮不起作用?>但是标签外的按钮(登陆)工作正常,为什么?>请帮我解决这个问题.我需要在点击时做出回复按钮workingdemo解决方案就是不要为物品使用标签.而只是使用divHTML

  5. Angular 2:将值传递给路由数据解析

    我正在尝试编写一个DataResolver服务,允许Angular2路由器在初始化组件之前预加载数据.解析器需要调用不同的API端点来获取适合于正在加载的路由的数据.我正在构建一个通用解析器,而不是为我的许多组件中的每个组件设置一个解析器.因此,我想在路由定义中传递指向正确端点的自定义输入.例如,考虑以下路线:app.routes.ts在第一个实例中,解析器需要调用/path/to/resourc

  6. angularjs – 解释ngModel管道,解析器,格式化程序,viewChangeListeners和$watchers的顺序

    换句话说:如果在模型更新之前触发了“ng-change”,我可以理解,但是我很难理解在更新模型之后以及在完成填充更改之前触发函数绑定属性.如果您读到这里:祝贺并感谢您的耐心等待!

  7. 角度5模板形式检测形式有效性状态的变化

    为了拥有一个可以监听其包含的表单的有效性状态的变化的组件并执行某些组件的方法,是reactiveforms的方法吗?

  8. Angular 2 CSV文件下载

    我在springboot应用程序中有我的后端,从那里我返回一个.csv文件WheniamhittingtheURLinbrowsercsvfileisgettingdownloaded.现在我试图从我的角度2应用程序中点击此URL,代码是这样的:零件:服务:我正在下载文件,但它像ActuallyitshouldbeBook.csv请指导我缺少的东西.有一种解决方法,但您需要创建一个页面上的元

  9. angularjs – Angular UI-Grid:过滤后如何获取总项数

    提前致谢:)你应该避免使用jQuery并与API进行交互.首先需要在网格创建事件中保存对API的引用.您应该已经知道总行数.您可以使用以下命令获取可见/已过滤行数:要么您可以使用以下命令获取所选行的数量:

  10. angularjs – 迁移gulp进程以包含typescript

    或者我应该使用tsc作为我的主要构建工具,让它解决依赖关系,创建映射文件并制作捆绑包?

返回
顶部