第4章 数据绑定

  • AngularJS是以数据做为驱动的MVC框架,所有模型(Model)里的数据经由控制器(Controller)展示到视图(View)中。
  • 所谓数据绑定指的就是将模型(Model)中的数据与相应的视图(View)进行关联,分为单向绑定和双向绑定两种方式。

4.1 单向绑定

  • 单向数据绑定是指将模型(Model)数据,按着写好的视图(View)模板生成HTML标签,然后追加到DOM中显示,如之前所学的artTemplate 模板引擎的工作方式。
  • 只能模型(Model)数据向视图(View)传递

4.2 双向绑定

  • 双向绑定则可以实现模型(Model)数据和视图(View)模板的双向传递。

4.3 相关指令

  • 在AngularJS中通过“{{}}”和ng-bind指令来实现模型(Model)数据向视图模板(View)的绑定,模型数据通过一个内置服务$scope来提供,这个$scope是一个空对象,通过为这个对象添加属性或者方法便可以在相应的视图(View)模板里被访问。

  • 注:“{{}}”是ng-bind的简写形式,其区别在于通过“{{}}”绑定数据时会有“闪烁”现象,添加ng-cloak也可以解决“闪烁”现象,通过ng-bind-template可以绑定多个数据。

  • 示例1:

<body ng-app="App">
<ul ng-controller="DemoController">
<li ng-bind="name"></li>
<li ng-cloak>{{name}}{{age}}</li>
<li ng-bind-template="{{name}}{{age}}" ng-bind-template="string"></li>
</ul>
<script src="./libs/angular.min.js"></script>
<script>
var App = angular.module('App', []);
App.controller('DemoController', ['$scope', function ($scope) {
// $scope 就是Model
$scope.name = 'itcast';
$scope.age = 10;
}]);
</script>
</body>
  • 通过为表单元素添加ng-model指令实现视图(View)模板向模型(Model)数据的绑定。
  • 要实现数据从视图向模型绑定,需要借助于表单元素,并且只能是表单元素

初始化

  • 通过ng-init可以初始化模型(Model)也就是$scope。
  • 示例:ng-init="name='zs';age=10"

为DOM元素添加事件

  • AngularJS对事件也进行了扩展,无需显式的获取DOM元素便可以添加事件,易用性变的更强。通过在原有事件名称基础上添加ng-做为前缀,然后以属性的形式添加到相应的HTML标签上即可。如ng-click、ng-dblclick、ng-blur等。

数据筛选

  • 通过ng-repeat可以将数组或对象数据迭代到视图模板中,ng-switch、on、ng-switch-when可以对数据进行筛选。

最新文章

  1. Bootstrap 3 管理模板
  2. javascript学习(三) 内置对象
  3. 公司内部openStack环境信息
  4. cisco san交换机配置
  5. POJ 1141 区间DP
  6. ImportError: No module named &#39;request&#39;
  7. Git Pro读书笔记
  8. Navicat如何进行搜索筛选
  9. Tomcat学习
  10. 实现Android5.0过渡动画兼容库
  11. UI自动化项目搭建(selenium+testng+java+maven)
  12. file_put_contents () failed to open stream: Permission denied 解决办法
  13. 这个Linux命令是干什么的?
  14. 今天我碰到了由于web.xml文件表头信息导致润乾报表启动失败的问题,解决方案如下
  15. OO第四阶段总结
  16. 工具类DateHandler
  17. gatttool的使用
  18. 10、Web Service-IDEA-jaxrs 整合spring
  19. Odoo中创建模块语句
  20. BZOJ4773: 负环(倍增Floyd)

热门文章

  1. js 引入外部文件之 script 标签
  2. 跨域(四)——document.domain
  3. mycat 多个逻辑库加读写分离
  4. qurtz.net(转载)
  5. Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务(转载6)
  6. centos FTP 用户指定目录禁用上级目录
  7. 学JS的心路历程-JS支持面向对象?(一)
  8. PR(Precision-Recall)曲线和mAP指标
  9. 关于池化(pooling)理解!!!
  10. room 二分图最大匹配KM