Angular2.0快速上手(二)

作者: 葉糖糖 | 来源:发表于2017-02-12 15:18 被阅读234次

在第一小节中,我们已经创建了一个ng2的项目(hello-world),这一小节我们将简单分析一下项目的代码结构及实现。

一、剥丝抽茧,看重点

初次接触前端的小伙伴,也许打开hello-world项目的文件夹会蒙圈。不过不用着急,慢慢的你都会了解。好了,先看下主体骨架。

|-e2e
  |...
|-node_modules
  |...
|-src
  |-源文件
|-.editorconfig
|-.gitignore
|-angular-cli.json
|-karma.conf.js
|-package.json
|-protractor.conf.js
|-README.md
|-tslint.json

小伙伴们今天只要关注src这个文件就可以,那接着我们一起来掀起她的红盖头。看看src里面的目录结构。

|-app
  |-app.component.css
  |...
|-assets
|-environments
|-favicon.ico
|-index.html
|-main.ts
|-polyfills.ts
|-styles.css
|-test.ts
|-tsconfig.json

以上就是最基本的一个项目目录结构,看的可还清晰?不妨动手打开自己的项目一一对比一下。对了,在这里src文件夹是重点。

二、穿针引线,捋线索

学习一项新技能,难免会感觉无从下手。但是只要掌握了正确的学习姿势,不管学习什么都能如鱼得水,游刃有余。不信,我们一起接着往下看。

2.1 解读index.html页面
<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>HelloWorld</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
  <app-root>Loading...</app-root>
</body>
</html>

这个页面中的代码除了自定义的<app-root>标签之外,其它一切正常。那这个自定义的标签作用是什么呢?哪些文件和它有关联?我们接着看app.component.ts(根组件)文件。

2.2一路追踪app-root

首先我们要打开app文件夹,然后找到app.component.ts文件。这是一个ts文件,如果不知道ts,那你肯定知道js。让我们来看一下他们之间的渊源。TypeScript是JavaScript类型的超集,它可以编译成纯JavaScript。可以在任何浏览器、任何计算机和任何操作系统上运行,并且是开源的。有兴趣的小伙伴可以,点击官网学习。http://www.typescriptlang.org/

//引入angular核心文件
import { Component } from '@angular/core';

//@Component是装饰器函数
@Component({
  //在app-root标签中,展示该组件
  selector: 'app-root',
  //模板地址
  templateUrl: './app.component.html',
  //css样式地址 
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  //为属性赋值
  title = 'app works!';
}

  • Every component begins with an @Component function that takes a metadata object. The metadata object describes how the HTML template and component class work together.

  • The selector property tells Angular to display the component inside a custom <app-root> tag in the index.html.

以上两段解释也很简单,本文就不多讲。接下来,我们将以**title
**属性为线索,查找取值的地方。

2.3不识代码真面目,只缘身在最外层

好奇的我们应该打开app.component.html文件看一下,原来title是在这边展示的。到此你应该能理解一点这个开发套路了。

<h1>
<!--{{}}这是告诉angular,请从组件中读取title并渲染出来;
           是单向的数据绑定“插值表达式”形式-->
  {{title}}
</h1>

2.4跃跃欲试,试一试又不会怀孕

如果在这个页面上添加一个输入框,会怎么样?h1标签里的值,可以跟随input里面的值变化而变化么?

<h1>
  {{title}}
</h1>
<!--添加一个input输入框-->
<input type="text"  name="title" id="title" value="{{title}}"/>

以上代码中已经添加了输入框,但是发现运行结果好像不是那么一回事。有图有真相。

残酷的现实

聪明的你是不是已经知道为什么了呢?请继续往下看。以下是我们理想中的实现效果。使用ngModel指令进行双向数据绑定就能简单完成目标。

<h1>
  {{title}}
</h1>
<input type="text" [(ngModel)]="title"/>

继续看看效果,如下图:

成功实现效果

PS:很好,你已经成功的入坑了。祝小伙伴,能够学习到更多的知识。

相关文章

  • Angular2.0快速上手(二)

    在第一小节中,我们已经创建了一个ng2的项目(hello-world),这一小节我们将简单分析一下项目的代码结构及...

  • Angular2.0快速上手(开发准备二)

    生命在于折腾,而对于程序员来说,写代码已经很费精力了,再去花时间于开发环境上,那就坑大了。今天心血来潮,想使用cn...

  • Angular2.0快速上手(三)

    各位小伙伴久等了,上一节我们一起简单的了解了angular2的目录结构,最后简单的尝试了一下双向数据绑定。今天我们...

  • Angular2.0快速上手(一)

    经过漫长的等待,终于等到了ng2发布。相比较ng1而言,ng2的变化还是显而易见的。本文将带领小伙伴们,一起快速上...

  • Angular2.0快速上手(开发准备一)

    开发angular是一件愉快的事情,虽然总会有人诟病,但那又如何。你玩的开心就行了,就像小婴儿抓到一张也能玩的很嗨...

  • 快速上手 Ansible

    Ansible 系列:(一):快速上手 Ansible(二):Ansible 命令(三):Ansible 主机清单...

  • Ansible 命令

    Ansible 系列:(一):快速上手 Ansible(二):Ansible 命令(三):Ansible 主机清单...

  • Ansible 主机清单配置文件

    Ansible 系列:(一):快速上手 Ansible(二):Ansible 命令(三):Ansible 主机清单...

  • Ansible Playbook 剧本语法

    Ansible 系列:(一):快速上手 Ansible(二):Ansible 命令(三):Ansible 主机清单...

  • Masonry介绍与使用实践:快速上手Autolayout

    Masonry介绍与使用实践:快速上手Autolayout Masonry介绍与使用实践:快速上手Autolayout

网友评论

    本文标题:Angular2.0快速上手(二)

    本文链接:https://www.haomeiwen.com/subject/tkcaittx.html