码迷,mamicode.com
首页 > Web开发 > 详细

AngularJS .1

时间:2015-09-23 21:17:02      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:

AngularJS 的四大核心特性:

1. MVC :

     Model: 数据模型层

     View: 视图层, 所有能看到的都属于视图层

     Controller: 业务逻辑和控制逻辑

  好处: 职责清晰,代码模块化

  为什么23种设计模式里面没有MVC:MVC其实是其它三个经典的设计模式的演变:观察者模式(Observer)(Pub/Sub), 策略模式(Strategy)和组合模式(Composite),它是三种模式的合体

 

<!DOCTYPE html>
<html ng-app>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
   <div ng-controller="test">
       <p>{{monica.aha}}</p>
   </div>
    <script src="js/angular-1.3.0.js"></script>
    <script src="HelloAngular_MVC.js"></script>
</body>
</html>

  

function test($scope) {
    $scope.monica = {
      aha: ‘Monica is My Name‘  
    };
}

在这个例子中 ng-app 相当于Java 中的 main 

<div ng-controller="test"> 就是控制器 controller
<p>{{monica.aha}}</p> 是 view

function test($scope) {
    $scope.monica = {
      aha: ‘Monica is My Name‘  
    };
}
作为 model

在 p 元素中的 {{}} 作用是获取数据

 

 

2. 模块化

先创建 angular 模块对象,再调用controller方法

<!doctype html>
<html ng-app="a">
    <head>
        <meta charset="utf-8">
    </head>
    <body>
       <div ng-controller="b">
            <p>{{greeting.text}}</p>
        </div>
        <div ng-controller="c">
            <p>{{greeting.text}}</p>
        </div>
    </body>
    <script src="js/angular-1.3.0.js"></script>
    <script src="HelloAngular_Modle.js"></script>
</html>

 

 

var myModule = angular.module("a", []);

myModule.controller("b", [‘$scope‘,
    function ($scope) {
        $scope.greeting = {
            text: ‘Hello‘
        };
    }
]);

myModule.controller("c", [‘$scope‘,
    function ($scope) {
        $scope.greeting = {
            text: ‘Hello AngularJS‘
        };
    }
]);

 

3. 指令系统

<!DOCTYPE html>
<html lang="en" ng-app="Dir">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        .test {
            color: #eee;
        }
    </style>
</head>
<body>
   <hello></hello>
    <script src="js/angular-1.3.0.js"></script>
    <script src="HelloAngular_Dir.js"></script>
</body>
</html>
var myDir = angular.module(‘Dir‘, []);

myDir.directive("hello", function() {
    return {
        restrict: ‘E‘,
        template: ‘<div class="test">Hi Monica</div>‘,
        replace: true
    }
});

 

4. 双向数据绑定

<!DOCTYPE html>
<html ng-app>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <div>
        <input ng-model="greeting.text">
        <p>{{greeting.text}}, AngularJS</p>
    </div>
    <script src="js/angular-1.3.0.js"></script>
</body>
</html>

 三个思考题:

1. 为什么其他的前端框架不支持双向数据绑定

2.如果你来实现双向数据绑定,怎么实现

3.双向数据绑定机制有什么潜在的问题

AngularJS .1

标签:

原文地址:http://www.cnblogs.com/Eyrum/p/4833353.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!