美文网首页
初识AngularJS

初识AngularJS

作者: 小弋呀 | 来源:发表于2016-05-26 01:53 被阅读142次

刚开始学习Angularjs,以前也没有写过博客啥的,这次就在这里记录下自己的学习过程,看看学习效果会不会更好,希望自己能坚持写下去。

一、介绍Angular

angularjs是谷歌推出的一个基于MVC的前端框架,利用双向数据绑定可以减少代码量,快速展示页面的变化。新手也还处于懵逼的阶段,就不啰啰嗦嗦了,总之谷歌出品,必然强大。
Angularjs官网 (小心城墙太高)。

二、第一个Hello World程序

作为一个程序员,第一个程序当然要从Hello World开始啦!下面就开始上代码:
<pre>
<!DOCTYPE html>
<html lang="en" ng-app>
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body >
{{"Hello World"}}
<script src="../scripts/angular-1.4.0-rc.2/angular.min.js"></script>
</body>
</html>
</pre>

  1. 在这个小程序中,我们引入了1.4.0-rc.2版本的angular
  2. 在html标签中,添加了一个ng-app
    ng-app表示angularjs的程序入口,angular在ng-app标签范围内执行,也就是说在此程序中angular可以在整个html标签范围内执行。以此类推,若ng-app添加在body中或者某个div中,则angular只能在body或此div中执行,范围以外的地方即使写了angular语法也不起作用。
  3. 在body中有一个{{"Hello World"}}
    angularjs中使用两个大括号 {{ <small>表达式</small> }} 执行数据绑定,此处的表达式可以是字面量、angular变量、运算表达式,此处的表达式是一个字符串字面量“Hello World”
结果图
三、添加一个控制器

angular既然是MVC模型,那自然是离不开controller的了,controller是model和view之间的桥梁,控制数据在应用程序中的传递以及程序的逻辑。angular控制器采用ng-controller指令定义,每个控制器接受$scope参数。
<pre>
<!DOCTYPE html>
<html lang="en" ng-app="HelloWorld">
<head>
 <meta charset="UTF-8">
 <title>Hello World</title>
</head>
<body>
 {{"Hello World"}}
 <div ng-controller="HelloController">
  {{say}}
 </div>
<script src="../scripts/angular-1.4.0-rc.2/angular.min.js"></script>
<script >
 var hello=angular.module("HelloWorld",[]);
 hello.controller("HelloController",["$scope",function($scope){
         $scope.say="Hello,welcome to Angular world";
          }]);
</script>
</body>
</html>
</pre>

这段代码和上面代码有几处不同:

  1. 在底部添加了一行var hello=angular.module("HelloWorld",[]);
    此句话的意思是定义一个模块,注意模块的名字并不是hello,而是HelloWorld,module函数的第一个参数,第二个参数是一个数组,里面用于定义这个模块的依赖项
  2. hello.controller()就是定义一个名为HelloController的控制器,请注意这个控制器是属于模块hello的,第二个参数也是一个数组,里面的函数就是控制器的主体,参数必须是$scope。其实第二个参数也可以只写一个函数:
    <code>hello.controller("HelloController",function($scope){
             $scope.say="Hello,welcome to Angular world";
              });
    </code>
    但是这样写有一个问题,由于$scope并不是我们定义的,它是angular内置,利用依赖注入作用于控制器内,所以当用这种方法书写时,js经过压缩后就不认识$scope了,致使程序出错,关于依赖注入现在也不理解,慢慢学吧。
    总之,我们就采用代码块中的方法定义控制器就最好了,标准不会出问题
  3. ng-app=“HelloWorld”、ng-controller="HelloController",{{say}}
    定义好了module、controller当然就要去使用,ng-app是angular程序的开始,也就是一个模块,此处表示我们要用名为HelloWorld的模块,其实我们可以在一个页面内写多个ng-app这里之前搞错了,在一个页面如果用了多个ng-app,只有第一个会起作用,其他的必须要手动,手动启动可自行百度。然后在ng-app标签内部我们就可以使用属于那个模块的控制器,这里我们在一个div上使用了HelloController 。最后在这个控制器内部我们便可以使用控制器中的数据了,即model,此处是绑定的{{say}},我们之前在控制器内部定义了:
    <code>$scope.say="Hello,welcome to Angular world";</code>
    主意绑定用的是say,而不是$scope.say
    其实一个控制器就相当于定义了一个作用域,在这个作用域内可以使用控制器中的变量、函数,而在控制器外部自然是不能使用,关于作用域没有什么好说的,但是作用域链也很重要,不理解的可以参考下这篇博客:
    理解JavaScript中的作用域链
结果图
四、主意

网上angular的学习资料,好多一开始教程是这样的:

控制器声明错误

一开始我这样写总是报错,纠结了半天,最后才发现这是angular 1.3.0-beta.9及之前的写法,从1.3.0-rc.0开始控制器不能直接写成一个函数的方式,必须利用模块生成,也就是上面的写法。

五、总结

总之,写一个最简单的angular程序,我们要:

  1. 引入angular
  2. 定义模块
  3. 定义控制器
  4. 在html中使用ng-app、ng-controller

第一次写博客,有些啰嗦,也没啥重点,下一篇文章我将写一个仿购物车功能。
代码地址 https://github.com/wangqingqiang/Angularjs

相关文章

  • AngularJS初识

    最近公司的项目前端框架用到了VX框架,其框架是在AngularJS上做了一点小小的封装,然后就有想法把Angula...

  • AngularJS初识

    一、简介 AngularJS 是一个基于MVC 处理模式,实现了 MVVM 数据双向绑定的用于开发动态 web项目...

  • 初识AngularJs

    一、AngularJs简介 1.AngularJS使用了不同的方法,它尝试去补足HTML本身在构建应用方面的...

  • 初识AngularJS

    刚开始学习Angularjs,以前也没有写过博客啥的,这次就在这里记录下自己的学习过程,看看学习效果会不会更好,希...

  • AngularJS 初识篇

    Angular CLI 安装 初始化新项目 ng serve指令参数含义 ng serve 命令会启动开发服务器,...

  • 初识AngularJs------笔记一

    一、AngularJs提供的常用的高级功能(1)解耦应用逻辑、数据模型和视图(2)Ajax服务(3)依赖注入(4)...

  • 前端开发工程师书籍值得推荐,你是否都看过叻?

    《AngularJS权威教程》 AngularJS权威教程 AngularJS权威教程是学习AngularJS的公...

  • 前端开发工程师书籍值得推荐

    《AngularJS权威教程》 AngularJS权威教程 AngularJS权威教程是学习AngularJS的公...

  • AngularJS使用

    AngularJS实现MVC AngularJS模块化Module AngularJS指令系统 AngularJS...

  • Angular基础学习-01

    本节包括:AngularJS表达式、AngularJS指令、AngularJS模型、AngularJS的Scope...

网友评论

      本文标题:初识AngularJS

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