angularJS的使用

开发如果使用 angular 最基本功能,只需要导入 angular.js

 

angularJS 1.2 版本后,路由功能 js 被单独分离

 

例如:编写HTML

<body ng-app ng-controller="PhoneListCtrl">
  <input ng-model="quer"/>
  <select ng-model="sortType">
    <option value="name">
按名字排序</option>
    <option value="age">
按年龄排序</option>
  </select>
  <ul>
    <li ng-repeat="phone in phones
| filter:quer | orderBy:sortType">
     {{phone.name}}
     <p>{{phone.snippet}}</p>
     <p>{{phone.age}}</p>
     <p>
      <img ng-src="{{phone.imsrc}}"/>
     </p>
    </li>
   </ul>
</body>

解释如下:

ng-app:AngularJS程序入口,对该标签内的元素进行初始化。
ng-controller:在当前元素范围内绑定指定的控制器(controller)。
ng-model:指定当前元素与数据模型($scope)中的属性绑定,如果数据模型中没有此属性,会自动新建一个。
ng-repeat:循环$scope中的属性,类似于{{#each beans}}
{{xxx}}:花括号表示读取某一属性值
filter、orderBy:过滤器。filter可以根据指定的属性过滤数据(例子里是quer属性)。orderBy是排序过滤器。这两个过滤器都是内置的。过滤器是可自定义的。

编写控制器controller:

var PhoneListCtrl = ['$scope', '$http',
 function($scope, $http) {
  $http.get('../json/test-1.json')
    .success(function(data) {
      $scope.phones = data;
    });
  $scope.sortType = 'age';
 }
];

解释如下:

PhoneListCtrl 控制器。控制器的声明方式是
   var c1=['ser1','ser2',function]
c1是控制器的名字,ser1、ser2是控制器所依赖的服务,以声明的方式注入到控制器中。例子中注入了$scope(数据模型)、$http(封装了ajax的服务)。这两个服务都是angularjs内置服务,服务是可以自定义的。
$scope.phones = data; 在这个地方后台返回的数据应用到了数据模型中,这时前台UI会自动响应更新。

angularJS的四大核心就是:MVC、模块化、双向数据绑定以及指令。

模块的简单写法如下:

angular.module('modulename', [x1,x2])//依赖于x1、x2模块
       .directive('directiveName', function() {})
       .factory('a', function() { return 123; })//创建服务
       .filter('b',function(){})//创建过滤器
       .value('d', 123)//创建变量,创建后可修改
       .contract('c',324)//创建常量创建后不可修改

双向数据绑定

 目前为止,angularJS是js中唯一实现双向数据绑定

例如:

<!doctype html>
<html ng-app>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <div>
            <input ng-model="greeting.text"/>
            <p>{{greeting.text}},Angular</p>
        </div>
    </body>
    <script src="js/angular-1.3.0.js"></script>
</html>

指令:

  指令是AngularJS用来扩展浏览器能力的技术之一。在DOM编译期间,和HTML关联着的指令会被检测到,并且被执行。这使得指令可以为DOM指定行为,或者改变DOM的结构

如:

E(元素)
<my-directive></my-directive> 
A(属性,默认值)
<div my-directive="expression"></div> 
C(类名)
<div class="my-directive:expression;"></div> 
M(注释)
<--directive:my-directive expression-->

最常用到的是它的路由机制,我们可以使用AngularJS提供的when和otherwise两个方法来定义应用的路由。 用config函数在特定的模块或应用中定义路由

路由的写法:

var myUIRoute = angular.module('MyUIRoute', ['ui.router', 'ngAnimate']);
myUIRoute.config(function($stateProvider, $urlRouterProvider) {
    $urlRouterProvider.otherwise("/state1");
    $stateProvider
        .state('state1', {
            url: "/state1",
            templateUrl: "tpls/state1.html"
        })
        .state('state1.list', {
            url: "/list",
            templateUrl: "tpls/state1.list.html",
            controller: function($scope) {
                $scope.items = ["A", "List", "Of", "Items"];
            }
        })
        .state('state2', {
            url: "/state2",
            templateUrl: "tpls/state2.html"
        })
        });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值