深入理解angular2启动项目步骤


Posted in Javascript onJuly 15, 2017

1. 创建项目文件夹

创建一个新的文件夹来保存你的项目,比如一开始有个self就好了

深入理解angular2启动项目步骤

2.安装基础库

首先确保已经安装了node.js

我们使用 npm package manager  来安装需要的开发库和开发工具。

打开终端窗口,输入下面的命令。

npm install

如果在执行npm install命令时没有出现npm ERR!,一起都好。可能会有几个npm WARN消息,这也没有影响。
我们会经常在一连串的gyp ERR!(gyp: generate your project)消息后看到一个npm WARN消息。不用管他们。一个包会使用node-gyp重新编译自己。如果重新编译失败,包会恢复(场使用一个预编译版本),一切正常工作。
只要保证在npm install命令最后面没有npm ERR!就好。

之后再执行下面的命令

npm init -y
npm i angular2@2.0.0-alpha.44 --save --save-exact
npm i live-server --save-dev

这些命令将会创建名为 package.json 的项目文件,安装相应的软件包,现在的 package.json 看起来应该如下所示。

{
 "name": "angular2-getting-started",
 "version": "1.0.0",
 "dependencies": {
  "angular2": "2.0.0-alpha.44"
 },
 "devDependencies": {
  "live-server": "^0.8.1"
 }
}

还需要一个 scripts 的配置节,找到并替换为如下的内容, 如果在你的文件中没有这个配置节, 那就加上好了. 

"scripts": {
  "start": "live-server"
 }

3. 第一个 Angular Component

添加一个名为 app.js 的文件,输入下面的内容。

var AppComponent = ng
 .Component({
  selector: 'my-app',
  template: '<h1>My First Angular 2 App</h1>'
 })
 .Class({
  constructor: function () { }
 });

我们正在创建一个名为 AppComponent 的可视组件,通过使用全局的 ng 命名空间下的 Component 和 Class 方法来完成。

var AppComponent = ng
  .Component({...})
  .Class({...})

Component 方法需要一个包含两个属性的配置对象。selecter 属性告诉 Angular 需要控制名为 "my-app" 的元素。一旦遇到 my-app 元素,Angular 将会创建和显示 AppComponent 实例

template 属性定义了组件的可视外观。在这个示例中,我们使用了内联的模板,我们也可以把这个模板调整到一个模板文件中,然后通过 templateUrl 来关联模板文件的名称来使用它。

我们使用 Class 方法实现这个组件本身的内容,可以定义属性,方法并绑定到这个视图

现在的组件是一个最小化的实现,构造函数中没有内容。在以后的示例中,我们会看到很多有趣的内容。

4. 启动应用

我们需要在应用中做点什么,在 app.js 的最后,添加下面的内容。

document.addEventListener('DOMContentLoaded', function() {
 ng.bootstrap(AppComponent);
});

我们等到浏览器通知我们说,内容已经加载完成了,然后再调用 bootstrap 方法。

bootstrap 方法通知 Angular 使用 AppComponent 作为应用的根来启动应用,

应该可以猜到, 在应用变得复杂的情况下, 我们会创建一个 Component 的树来完成复杂的工作.

 Wrapped in an IIFE

我们不希望污染全局命名空间,但是,现在还不需要应用到命名空间,我们直接使用 IIFE ( Immediately Invoked Function Execution ) 来封装我们的代码。

(function() {
var AppComponent = ng
 .Component({
  selector: 'my-app',
  template: '<h1>My First Angular 2 App</h1>'
 })
 .Class({
  constructor: function () { }
 });
document.addEventListener('DOMContentLoaded', function() {
 ng.bootstrap(AppComponent);
});
})();

 5. 创建 index.html

在项目文件夹中添加名为 index.html 的页面,内容如下:

<html>
 <head>
  <title>Angular 2 QuickStart</title>
  <script src="node_modules/angular2/bundles/angular2.sfx.dev.js"></script>
  <script src="app.js"></script>
 </head>
 <body>
  <my-app></my-app>
 </body>
</html>

在 head 中,我们的应用加载了两个脚本

angular2.sfx.dev.js, Angular2 的开发库

app.js, 我们刚刚开发的脚本。

在 body 中,使用了名为 <my-app> 的元素,这是应用的根的占位,Angular 将在这里显示我们的应用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
在Javascript操作JSON对象,增加 删除 修改的简单实现
Jun 02 Javascript
原生js代码实现图片放大境效果
Oct 30 Javascript
sea.js常用的api简易文档
Nov 15 Javascript
微信小程序 UI与容器组件总结
Feb 21 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
Apr 13 jQuery
webpack学习笔记之优化缓存、合并、懒加载
Aug 24 Javascript
node.js-v6新版安装具体步骤(分享)
Sep 06 Javascript
利用Node.js检测端口是否被占用的方法
Dec 07 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
Sep 04 Javascript
微信小程序使用车牌号输入法的示例代码
Aug 20 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
Sep 20 Javascript
避坑之 JavaScript 中的toFixed()和正则表达式
Apr 19 Javascript
js+html5实现复制文字按钮
Jul 15 #Javascript
js+html5实现页面可刷新的倒计时效果
Jul 15 #Javascript
详解ES6之用let声明变量以及let loop机制
Jul 15 #Javascript
vue增删改查的简单操作
Jul 15 #Javascript
JavaScript实现跟随滚动缓冲运动广告框
Jul 15 #Javascript
Javascript实现基本运算器
Jul 15 #Javascript
基于AngularJS的拖拽文件上传的实例代码
Jul 15 #Javascript
You might like
无数据库的详细域名查询程序PHP版(3)
2006/10/09 PHP
php下实现折线图效果的代码
2007/04/28 PHP
PHP校验ISBN码的函数代码
2011/01/17 PHP
PHP实现bitmap位图排序与求交集的方法
2016/07/28 PHP
php结合md5的加密解密算法实例
2016/09/30 PHP
laravel 判断查询数据库返回值的例子
2019/10/11 PHP
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
js时间日期和毫秒的相互转换
2013/02/22 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
2015/03/31 Javascript
易被忽视的js事件问题总结
2016/05/14 Javascript
jQuery Ajax传值到Servlet出现乱码问题的解决方法
2016/10/09 Javascript
Bootstrap入门教程一Hello Bootstrap初识
2017/03/02 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
JavaScript捕捉事件和阻止冒泡事件实例分析
2018/08/03 Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
2018/10/07 Javascript
对angular 实时更新模板视图的方法$apply详解
2018/10/09 Javascript
微信小程序实现点击图片旋转180度并且弹出下拉列表
2018/11/27 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
Django在win10下的安装并创建工程
2017/11/20 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
Python定时任务工具之APScheduler使用方式
2019/07/24 Python
Python3 io文本及原始流I/O工具用法详解
2020/03/23 Python
Python中Selenium库使用教程详解
2020/07/23 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
HTML5使用ApplicationCache接口实现离线缓存技术解决离线难题
2012/12/13 HTML / CSS
国际领先的学术出版商:Springer
2017/01/11 全球购物
微博营销计划书
2014/01/10 职场文书
小学英语课后反思
2014/04/26 职场文书
消防安全宣传口号
2014/06/10 职场文书
煤矿安全生产月活动总结
2014/07/05 职场文书
县级领导干部开展党的群众路线教育实践活动工作汇报
2014/10/25 职场文书
2015年挂职干部工作总结
2015/05/14 职场文书
Java 写一个简单的图书管理系统
2022/04/26 Java/Android