方向1:模型数据(model) 绑定 到视图(view)

实现方法1:{{model变量名}}

$scope.num=10  
 <p>{{num}}</p> 

实现方法2: 常用指令(ngRepeat、ngIf、ngShow/Hide/Src....)

$scope.list=[{name:'sam',age:22},{name:'tom',age:37},{name:'kim',age:28}] 
<tr ng-repeat='std in list'>
  <td>{{std.name}}</td>
  <td>{{std.age}}</td>
</tr>  

  

方向2:将视图(view)中用户输入的数据 绑定到 模型数据(model)

实现方法:ngModel指令 用在表单组件中(input select textarea。。。)

PS:$watch监听模型变量值的改变------>执行指定的方法
$scope.$watch('变量名',function(){...});

 <!DOCTYPE html>
<html ng-app="myApp">
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="js/angular.js"></script>
</head>
<body ng-controller="myCtro"> <!--将多选框的勾选数据给model -->
复选框:<input type="checkbox" ng-model="isAgree"/>
<br> <!--将选择框的model数据给ng-model-->
<!--ng-options 动态生成选项 -->
<select ng-model="sel2" ng-options="sel2.name for sel2 in selection"></select>
<p>{{sel2.name}}</p>
<script>
var app=angular.module('myApp',['ng']); app.controller('myCtro',function($scope){
//$watch可以监听view数据是否改变,便于观察现象
$scope.$watch('isAgree',function(){
console.log($scope.isAgree);
});
$scope.$watch('sel',function(){
console.log($scope.sel);
}); $scope.selection=[
{name:'model',value:5},
{name:'modren',value:4},
{name:'moon',value:1},
{name:'morning',value:3}
];
//为select标签设置一个selected 选项
$scope.sel2=$scope.selection[1]; $scope.$watch('sel2',function() {
console.log($scope.sel2.value);
})
})
</script>
</body>
</html>

3、利用ng-model  ng-checked  双向数据传输 实现全选/部分选择的判断

<!DOCTYPE html>
<html ng-app="myApp">
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="js/angular.js"></script>
</head>
<body ng-controller="myCtro">
<table>
<thead>
<tr>
<th>请选择</th>
<th>姓名</th>
<th>生日</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="tem in list">
<td>
<input type="checkbox" ng-model="tem.ischecked" ng-checked="selectAll"/>
</td>
<td>{{tem.name}}</td>
<td>{{tem.birthday}}</td>
</tr>
</tbody>
</table>
<input type="checkbox" ng-model="selectAll"/>全选/取消全选
<br/>
<button ng-click="getMsg()">查看</button>
<script>
var app=angular.module('myApp',['ng']); app.controller('myCtro',function($scope){
$scope.list=[
{name:'Michael',birthday:'2016-05-01',ischecked:false},
{name:'Golden',birthday:'2016-05-04',ischecked:false}
]; //监听的目的:通过全选或者取消全选时,ng-checked方向1的绑定确实会生效
//当时不会直接修改
//$watch=onchange
$scope.$watch('selectAll',function(){
angular.forEach($scope.list,function(value,key){
$scope.list[key].ischecked=$scope.selectAll;
})
});
$scope.getMsg=function(){
var str="";
//遍历的一种方法
angular.forEach($scope.list,function(value,key){
console.log(value);
if(value.ischecked){
str+=value.name+"被选中了";
}
});
if(str===""){
str='什么都没选中';
}
alert(str);
} }); </script>
</body>
</html>

 

angular的双向数据绑定的更多相关文章

  1. Angular解决双向数据绑定

    <!DOCTYPE html> <html ng-app="myApp1"><body><div ng-controller=" ...

  2. Angular JS - 3 - Angular JS 双向数据绑定

    一 .数据绑定 1. 数据绑定: 数据从一个地方A转移(传递)到另一个地方B, 而且这个操作由框架来完成2. 双向数据绑定: 数据可以从View(视图层)流向Model(模型,也就是数据), 也可以从 ...

  3. angularjs探秘<四> 双向数据绑定

    双向数据绑定是angularjs的一大特性,这个特性在实际开发中省了不少事儿.之前第二篇提过数据绑定,这一篇从实际开发的案例中具体看下双向数据绑定的便捷. 首先看一个场景: 在 注册/登录 中经常遇到 ...

  4. 双向数据绑定(angular,vue)

    最近github上插件项目更新了关于双向数据绑定的实现方式,关于angular和vue. angular众所周知是使用的脏检查($dirty).一开始大家会认为angular开启了类似setInter ...

  5. Angular双向数据绑定MVVM以及基本模式分析

    MVVM: angular的MVVM实现的是双向数据绑定,模型从服务器端抓取到数据,将数据通过控制器(controller)传递到视图(view)显示,视图数据发生变化时同样也会影响到模型数据的变化, ...

  6. Angular自定义组件实现数据双向数据绑定

    学过Angular的同学都知道,输入框通过[(ngModel)]实现双向数据绑定,那么自定义组件能不能实现双向数据绑定呢?答案是肯定的. Angular中,我们常常需要通过方括号[]和圆括号()实现组 ...

  7. angular,vue,react的基本语法—双向数据绑定、条件渲染、列表渲染、angular小案例

    基本语法: 1.双向数据绑定 vue 指令:v-model="msg" react constructor(){ this.state{ msg:"双向数据绑定" ...

  8. angular和vue双向数据绑定

    angular和vue双向数据绑定的原理(重点是vue的双向绑定) 我在整理javascript高级程序设计的笔记的时候看到面向对象设计那章,讲到对象属性分为数据属性和访问器属性,我们平时用的js对象 ...

  9. 第217天:深入理解Angular双向数据绑定的原理

    一.理解angular双向数据绑定 双向绑定是新的前端框架中频繁出现的一个新词汇,也是mvvm的核心原理.angularjs五条核心信念中的数据驱动,便是由双向绑定进行完成. 那么什么是双向绑定,下面 ...

随机推荐

  1. 动画黄金搭档:CADisplayLink&CAShapeLayer

    我们在开发中有时会遇到一些看似非常复杂的动画,不知该如何下手,今天的这篇文章中我会讲到如何利用CADisplayLink和CAShapeLayer来构建一些复杂的动画,希望能在你下次构建动画中,给你一 ...

  2. 使用Canvas绘制背景图

    原文  http://www.imququ.com/post/use-canvas-as-background-image.html 最近iCloud Web的Beta版换了UI,整体风格变得和iOS ...

  3. EXC_ARM_DA_ALIGN

    ios 版本上的问题  armv7  ipad2 int64 t = *(int64*)pBuff; 如果pBuff不是8字节对齐的地址就 crash 变通的方法是通过memcpy __sync_fe ...

  4. Git Cheat Sheet

    Merge Undo git merge with conflicts $ git merge --abort Archive $ git archive --format zip --output ...

  5. php 无限极

      1,递归 public function getInfo(){ $data=$this->select(); $arr=$this->noLimit($data,$f_id=0,$le ...

  6. The connection to adb is down,and a server error has occured.解决办法---------------------亲测有效

    认真读error: 办法一: 点击项目右键->Android tools ->Fix Project Properties,检查项目属性 办法二: 设备管理器,查看是否存在adb进程 如果 ...

  7. Linux操作系统备份之二:通过tar拷贝分区实现Linux操作数据的在线备份

    http://www.tektea.com/archives/2163.html. 在<Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份>文章中,我们介绍了使 ...

  8. oracle 笔试题

    ORACLE笔试题一.单选题1.在Oracle中,以下不属于集合操作符的是( ). A. UNION B. SUM C. MINUS D. INTERSECT2.在Oracle中,执行下面的语句:SE ...

  9. CentOs下安装maven

    现有的一个项目使用了Maven来管理,源代码放到了Subversion中.虽然Maven管理项目很方便,但是部署起来还是很麻烦的.先要在本地生成项目jar包,上传到服务器,然后再重启服务.如果在服务器 ...

  10. nodejs与模块soap的用法

    最近做了点东西要求用到soap模块,我是怎么知道的呢,收到了 <soap:Body><soap:Fault><faultcode>soap:Client</f ...