AngularJS学习笔记

2017-09-21  本文已影响18人  margery

1、什么是angularjs

2、为什么使用angular

先看一个例子

<input type="text" ng-model = "name"> <p>{{name}}</p>
<script type="text/javascript"> var myapp = angular.module('myapp',[]); <script> src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js" charset="utf-8"></script>

当页面加载完毕后,AngularJS自动开始执行
HTML页面中,ng-xxx的属性称之为指令(Driective)
ng-app 告诉AngularJS该标签是ng的应用程序管理的边界
ng-model 指令把文本框的值value绑定到user.name上
{{user.name}} 表达式用来取出绑定在user.name上面的值,显示在页面

(2)angular语法

第一个参数是控制器的名称,第二个参数是执行时会执行的函数

为应用中的模型设置初始状态,通过$scope(上下文模型)对象把数据模型或函数行为暴露给视图

它们可以包含文字、运算符和变量
如 {{ 1 + 2 }} 或 {{ ‘hello ’+ ‘,world’}}

指令

ng-xxx

ng-bind 来实现模型(Model)数据向视图模板(View)的绑定
ng-init 初始化模型(Model)也就是$scope。
ng-click、ng-dblclick 点击事件/双击
ng-show/hide控制元素是否显示,true显示、false不显示
ng-repeat 重复 可以将数组或对象数据迭代到视图模板中
ng-class控制类名
ng-switch、on、ng-switch-when 可以对数据进行筛选。
自定义指令
app.directive('xxx',function(){})
restrict 定义指令的声明方式 'E'元素 'A' 属性
replace 如果指令作为标签,替换标签本身
transclude 如果标签内部有内容,如何替换
template/ templateUrl 模板 / 模板的url
$templateCache 缓存模板
link 通过link可以给dom元素绑定事件

作用域

整个应用范围(ng-app所在标签以内)都是可以被访问到的。

通过ng-controller指令可以创建一个子作用域,新建的作用域可以访问其父作用域的数据。
`
<div class="d2" ng-controller = 'myCtrl2'>
<p>{{name}}</p>

  <p>{{name1}}</p>
  <p>{{age}}</p>
  </div>
  <script type="text/javascript">
    var myapp = angular.module('myapp',[]);
    myapp.controller('myCtrl',function($scope){
      $scope.name = '张三';
    })
    myapp.controller('myCtrl2',function($scope){
      $scope.name1 = 'ls';
      $scope.age = 23;
    })
  </script>

`

过滤器

{{ | }}

| 来过滤

通过模块对象实例提供的filter方法自定义过滤器。
`
<p>{{'你好'| bf}}</p>
<script type="text/javascript">
var myapp = angular.module('myapp',[]);
myapp.controller('myCtrl',function($scope){
myapp.filter('bf',function(){
return function(input){
return 'bf==>'+input;

      }
    })

`

服务

service方法
myapp.controller('myCtrl',['$scope','$filter','showTime',function($scope,$filter,showTime){ $scope.now = showTime; }]) myapp.service('showTime',['$filter',function($filter){ var date = new Date(); this.date = $filter('date')(date,'yyyy-MM-dd'); }])
factory方法
myapp.controller('myCtrl',['$scope','$filter','showTime',function($scope,$filter,showTime){ $scope.now = showTime; }]) myapp.factory('showTime',function($filter){ var date = new Date(); var dateFilter = $filter('date'); date = dateFilter(date,'yyyy/MM/dd'); return date; })

配置块

运行块

路由

两个方法匹配路由,分别是when和otherwise,when方法需要两个参数,otherwise方法做为when方法的补充只需要一个参数。
第1个参数是一个字符串,代表当前URL中的hash值。
第2个参数是一个对象,配置当前路由的参数,如视图、控制器等。
a、template 字符串形式的视图模板
b、templateUrl 引入外部视图模板
c、controller 视图模板所属的控制器
d、redirectTo跳转到其它路由

带参数的路由

获取参数,在控制中注入$routeParams可以获取传递的参数

上一篇下一篇

猜你喜欢

热点阅读