博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Angular之双向数据绑定(上)
阅读量:4701 次
发布时间:2019-06-09

本文共 1110 字,大约阅读时间需要 3 分钟。

---恢复内容开始---

angular最初进入前端开发人员视野的时候,给人以不可磨灭的印象之一就是它的双向数据绑定的实现。本篇章会先介绍如何使用此功能,然后在深入解释它的双向绑定的机制是如何实现的。

angular中的data-binding指的是模型models和视图views之间的自动同步。angular实现双向绑定后,会让你觉得数据模型是页面中数据唯一的真实来源。当model改变后,视图反映改变,反之亦然。通俗的说,所谓的双向数据绑定,无非就是从界面的操作能实时反映到数据,数据的变更能实时展现到界面。据各最简单的例子:

function CounterCtrl($scope) { $scope.counter = 1;}

上面的例子很简单,每当点击一次按钮,界面上的数据就加1。

但是,新手很可能会碰到下面这样的问题。

var app = angular.module("test", []);app.directive("myclick", function() {    return function (scope, element, attr) {        element.on("click", function() {            scope.counter++;        });    };});app.controller("CounterCtrl", function($scope) {    $scope.counter = 0;});    

上面的例子也很简单:想要实现的事:点击按钮时,span元素中counter加1。但是实际上,视图上并不会这样。然而model中counter确实增加了。也就是说,并没有实现angular所说的数据双向绑定。测试请访问:http://plnkr.co/edit/?p=preview

但是如果在scope.counter++;后面加上scope.$digest();后又没问题了,而第一个例子中并没有使用$digest函数,如果使用了反而报错。这是怎么回事?不妨先看看下面怎么使用原生javascript来实现的。

  
two-way binding

转载于:https://www.cnblogs.com/brancepeng/p/5002582.html

你可能感兴趣的文章
MongoDB语法与现有关系型数据库SQL语法比较
查看>>
[Leetcode] Search a 2D Matrix
查看>>
jpa
查看>>
潭州课堂25班:Ph201805201 爬虫基础 第十四课 js破解 (课堂笔记)
查看>>
percona顶级项目(针对数据库)
查看>>
MYSQL INNODB PAGE一督
查看>>
转 CSS hack:针对IE6,IE7,firefox显示不同效果
查看>>
IOS中调整UI控件位置和尺寸
查看>>
openfire插件开发环境
查看>>
iOS高级编程之JSON,XML数据解析
查看>>
调用api 的方式
查看>>
Data mining系列
查看>>
SpringMVC Web项目升级为Springboot项目(二)
查看>>
java实现文件及目录压缩
查看>>
Android Architecture Components 系列(三) LiveData
查看>>
ECMAScript5的新特性总结
查看>>
不归零法编码、曼彻斯特编码和差分曼彻斯特编码
查看>>
uoj 218 火车管理
查看>>
UILabel的抗压缩、抗拉伸、以及控件的约束简述
查看>>
单例模式和多线程有没有关系?
查看>>