关于angularjs应该知道的知识点一双向绑定

1、双向数据绑定
<div ng-app="myApp" ng-controller="myCtrl">
    名: <input type="text" ng-model="firstName">  
    姓: <input type="text" ng-model="lastName"><br>
   <br>
   姓名: {{firstName + " " + lastName}}
</div>
<script>
    var app = angular.module('myApp', []);
    app.controller('myCtrl', function($scope) {
        $scope.firstName= "John";
        $scope.lastName= "Doe";
    });
</script>

审阅一下上面写的代码,我们使用ng-model指令将内部数据模型对象($scope, 该对象是一个简单的JavaScript对象,其中的属性可以被视图访问,也可以同控制器进行交互)中的name属性绑定到了文本输入字段上。这意味着无论在文本输入字段中输入了什么,都会同步到数据模型中。

AngularJS会记录数据模型所包含的数据在任何特定时间点的值(在上面例子中就是firstname的值和lastname的值),而不是原始值。当AngularJS认为某个值可能发生变化时,它会运行自己的事件循环来检查这个值是否变“脏”。如果该值从上次事件循环运行之后发生了变化,则该值被认为是“脏”值。这也是Angular可以跟踪和响应应用变化的方式。这个过程被称作脏检查(dirty checking)。脏检查是检查数据模型变化的有效手段.

通过上面两段话我们就可以理解什么是双向数据绑定了。双向数据绑定(bi-directional)意味着如果视图改变了某个值,数据模型会通过脏检查观察到这个变化从而改变数据模型的值;而如果数据模型改变了某个值,由于模型的值通过ng-model绑定到了视图中,因此视图也会依据变化重新渲染。

在视图中通过对象的属性而非对象本身来进行引用绑定,是Angular中的最佳实践。(这点需要注意一下,它的意思是我们在上面的代码中不该直接使用firstname和lastname,应该把它们附在一个对象中)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值