angular js 初学
1 angularJS的一些概念? ? AngularJS 通过新的属性和表达式扩展了 HTML。 ? ? AngularJS 是一个?JavaScript 框架,它是一个以Javascript编写的库,它可通过 <script> 标签添加到 HTML 页面。 ? ? Angular Js是一个Javascript框架, ? ? AngularJS 可以构建一个单一页面应用程序(SPAs:Single Page Applications)。 ? ? 注:我们建议把脚本放在 <body> 元素的底部。这会提高网页加载速度,因为 HTML 加载不受制于脚本加载。 ? ? 各个 angular.js 版本下载:?https://github.com/angular/angular.js/releases 2?angularJS的历史? ? AngularJS 是比较新的技术,版本 1.0 是在 2012 年发布的。 ? ? AngularJS 是由 Google 的员工 Mi?ko Hevery 从 2009 年开始着手开发。 ? ? 该项目目前已由 Google 正式支持,有一个全职的开发团队继续开发和维护这个库。 3 什么是angular?? ? AngularJS 使得开发现代的单一页面应用程序(SPAs:Single Page Applications)变得更加容易。
4?angularJS 配置? ? ?AngularJS 通过?ng-directives?扩展了 HTML。 ? ? ?AngularJS 表达式写在双大括号内:{{ expression }}。 ????ng-app?指令定义一个 AngularJS 应用程序。 ? ? ng-model?指令把元素值(比如输入域的值)绑定到应用程序。 ? ? ng-bind?指令把应用程序数据绑定到 HTML 视图。 <div ng-app=""> <p>名字 : <input type="text" ng-model="name"></p> <h1>Hello {{name}}</h1> // 此处为angular表达式用双大括号包裹 </div> ? ? ? ? ? ? ? ? 1.ng-app是一个特殊的指令,一个HTML文档只出现一次,如出现多次也只有第一个起作用;ng-app可以出现在html文档的任何一个元素上。 ? ? ? ? ? ? ? ? 2.ng-app作用:告诉子元素指令是属于angularJs。 ? ? ? ? ? ? ? ? 3.ng-app的值可以为空(练习),项目中一定要赋值,后面所说的模块。 一个页面里创建多个 ng-app 手动加载即可: 5 angularJS 表达式AngularJS 表达式写在双大括号内:{{ expression }}。 ? ? AngularJS 表达式把数据绑定到 HTML,这与?ng-bind?指令有异曲同工之妙。 ? ? AngularJS 将在表达式书写的位置"输出"数据。 ? ? AngularJS 表达式?很像?JavaScript 表达式:它们可以包含文字、运算符和变量。 ? ? 实例 {{ 5 + 5 }} 或 {{ firstName + " " + lastName }} ? ? ? ? ? 5.1 ??AngularJS 数字 <div ng-app="" ng-init="quantity=1;cost=5"> <p>总价: {{ quantity * cost }}</p> </div> 5.2 ??AngularJS 字符串 <div ng-app="" ng-init="firstName=‘John‘;lastName=‘Doe‘"> <p>姓名: {{ firstName + " " + lastName }}</p> </div> 5.3 ?AngularJS 对象 <div ng-app="" ng-init="person={firstName:‘John‘,lastName:‘Doe‘}"> <p>姓为 {{ person.lastName }}</p> </div> 5.4 ?AngularJS 数组 <div ng-app="" ng-init="points=[1,15,19,2,40]"> <p>第三个值为 {{ points[2] }}</p> </div> ? ? ? ?拓展:AngularJS 表达式 vs JavaScript 表达式? ? ? ? ? ? ? ? ? ? JavaScript 表达式与AngularJS 表达式一样可以包含字母,操作符,变量。 ? ? ? ? ? ? ? ? ?AngularJS 表达式可以写在 HTML 中。jascript表达式只能写在script标签中 ? ? ? ? ? ? ? ? AngularJS 表达式不支持条件判断,循环及异常。JavaScript 表达式支持if判断及for循环 ? ? ? ? ? ? ? ? AngularJS 表达式支持过滤器,JavaScript 表达式支持正则过滤 6 angularJS 应用? ? ?AngularJS?模块(Module)?定义了 AngularJS 应用。 ? ? ?AngularJS?控制器(Controller)?用于控制 AngularJS 应用。 ? ? ?ng-app指令指明了应用,?ng-controller?指明了控制器。 ? ? ?AngularJS 应用程序由?ng-app?定义。应用程序在 <div> 内运行。 ? ? ?ng-controller="myCtrl"?属性是一个 AngularJS 指令。用于定义一个控制器。 ? ? ?myCtrl?函数是一个 JavaScript 函数。 ? ? ?AngularJS 使用$scope?对象来调用控制器。 ? ? ?在 AngularJS 中, $scope 是一个应用对象(属于应用变量和函数)。 ? ? ?控制器的?$scope?(相当于作用域、控制范围)用来保存AngularJS Model(模型)的对象。 ? ? ?控制器在作用域中创建了两个属性 (firstName?和?lastName)。 ? ? ?ng-model?指令绑定输入域到控制器的属性(firstName 和 lastName)。 ? ? ?基本配置如下:? ? ? <div ng-app="myApp" ng-controller="myCtrl"> <!-- 此处myApp指向模块应用 ng-controller?指令来添加应用的。控制器model中可以有多个controller: --> 名: <input type="text" ng-model="firstName"><br> 姓: <input type="text" ng-model="lastName"><br> <br> 姓名: {{firstName + " " + lastName}} </div> <script> var app = angular.module(‘myApp‘,[]); // 此处代码标明创建了一个模块,定义应用为app myApp指向视图层 拓展 ?关于 controller 中作用域的问题: ? ? ? ?说明: ?controller 中,如果局部 $scope 和全局 $rootScope 都存在,且有相同名字的变量,{{变量名}}?指局部变量而不是全局变量,作用域只有当前?controller;{{$root.变量名}}?是全局变量,在?ng-app=""?下任何一个?controller?中都能使用。如果没有?$scope,只有?$rootScope,那么?{{变量名}}?和?{{$root.变量名}}?就没区别了。 <body ng-app="myApp"> <div ng-controller="myCtrl"> //输出结果 {{first}}<br> //ctrl局部first {{$root.first}}<br> //全局first {{second}}<br> //全局second {{$root.second}}<br> //全局second </div> <br> <br> <div ng-controller="myCtrl2"> {{first}}<br> //全局first {{$root.first}}<br> //全局first {{second}}<br> //ctrl2局部second {{$root.second}} //全局second </div> <script> var app = angular.module(‘myApp‘,[]); app.controller(‘myCtrl‘,function ($scope,$rootScope) { $scope.first = ‘ctrl局部first‘; $rootScope.first = ‘全局first‘; }); app.controller(‘myCtrl2‘,$rootScope) { $scope.second = ‘ctrl2局部second‘; $rootScope.second = ‘全局second‘; }); </script> 7 angularJS 指令 ?? ?AngularJS 通过被称为 指令 的新属性来扩展 HTML。 ? ?AngularJS 通过内置的指令来为应用添加功能。 ? ?AngularJS 允许你自定义指令。 ? ?AngularJS 指令是扩展的 HTML 属性,带有前缀 ng-。 ? ?ng-app 指令初始化一个 AngularJS 应用程序。ng-app 指令告诉 AngularJS,元素是 AngularJS 应用程序 的"所有者"。 ? ?ng-init 指令初始化应用程序数据。 ? ?ng-model 指令把元素值(比如输入域的值)绑定到应用程序。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |