最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

angularjs学习笔记之双向数据绑定

来源:动视网 责编:小采 时间:2020-11-27 20:27:54
文档

angularjs学习笔记之双向数据绑定

angularjs学习笔记之双向数据绑定:这次我们来详细讲解angular的双向数据绑定。一.简单的例子 这个例子我们在第一节已经展示过了,要看的移步这里 这里实现的效果就是,在输入框输入内容,下面也会相应的改变对应的内容。这就实现了数据双向绑定。二.取值表达式与ng-bind的使用 我们再看一个例
推荐度:
导读angularjs学习笔记之双向数据绑定:这次我们来详细讲解angular的双向数据绑定。一.简单的例子 这个例子我们在第一节已经展示过了,要看的移步这里 这里实现的效果就是,在输入框输入内容,下面也会相应的改变对应的内容。这就实现了数据双向绑定。二.取值表达式与ng-bind的使用 我们再看一个例


这次我们来详细讲解angular的双向数据绑定。

一.简单的例子

这个例子我们在第一节已经展示过了,要看的移步这里

这里实现的效果就是,在输入框输入内容,下面也会相应的改变对应的内容。这就实现了数据双向绑定。

二.取值表达式与ng-bind的使用

我们再看一个例子,点击这里,文中出现的第一个例子中,{{greeting.text}}和{{text}}就是一个取值表达式了,但是如果你一直刷新页面,你会发现这样一个问题,那就是页面有时候会一瞬间的出现“{{greeting.text}} {{text}}”这个字符串,那我们该如何解决呢?

这里就用到ng-bind命令了:用于绑定数据表达式。

比如我们可以把

<p>{{greeting.text}} {{text}}</p>

改为:

"<p><span ng-bind="greeting.text"></span><span ng-bind="text"></span></p>";

  这样改正之后,页面刷新就不会有不希望出现的字符串出现了。

  但是使用命令总要比直接使用表达式的效率低一点,所以我们总结了一个常用规律:一般来说,index使用ng-bind,后续模版中的使用'{{}}'的形式。

三.双向绑定的典型场景-表单

  先看一个form.html的内容:

<!doctype html>
<html ng-app="UserInfoModule">
 
<head>
 <meta charset="utf-8">
 <link rel="stylesheet" href="css/bootstrap-3.0.0/css/bootstrap.css">
 <script src="js/angular-1.3.0.js"></script>
 <script src="Form.js"></script>
</head>
 
<body>
 <p class="panel panel-primary">
 <p class="panel-heading">
 <p class="panel-title">双向数据绑定</p>
 </p>
 <p class="panel-body">
 <p class="row">
 <p class="col-md-12">
 <form class="form-horizontal" role="form" ng-controller="UserInfoCtrl">
 <p class="form-group">
 <label class="col-md-2 control-label">
 邮箱:
 </label>
 <p class="col-md-10">
 <input type="email" class="form-control" placeholder="推荐使用126邮箱" ng-model="userInfo.email">
 </p>
 </p>
 <p class="form-group">
 <label class="col-md-2 control-label">
 密码:
 </label>
 <p class="col-md-10">
 <input type="password" class="form-control" placeholder="只能是数字、字母、下划线" ng-model="userInfo.password">
 </p>
 </p>
 <p class="form-group">
 <p class="col-md-offset-2 col-md-10">
 <p class="checkbox">
 <label>
 <input type="checkbox" ng-model="userInfo.autoLogin">自动登录
 </label>
 </p>
 </p>
 </p>
 <p class="form-group">
 <p class="col-md-offset-2 col-md-10">
 <button class="btn btn-default" ng-click="getFormData()">获取Form表单的值</button>
 <button class="btn btn-default" ng-click="setFormData()">设置Form表单的值</button>
 <button class="btn btn-default" ng-click="resetForm()">重置表单</button>
 </p>
 </p>
 </form>
 </p>
 </p>
 </p>
 </p>
</body>
 
</html>

  再看Form.js的内容:

var userInfoModule = angular.module('UserInfoModule', []);
userInfoModule.controller('UserInfoCtrl', ['$scope',
 function($scope) {
 $scope.userInfo = {
 email: "253445528@qq.com",
 password: "253445528",
 autoLogin: true
 };
 $scope.getFormData = function() {
 console.log($scope.userInfo);
 };
 $scope.setFormData = function() {
 $scope.userInfo = {
 email: 'testtest@126.com',
 password: 'testtest',
 autoLogin: false
 }
 };
 $scope.resetForm = function() {
 $scope.userInfo = {
 email: "253445528@qq.com",
 password: "253445528",
 autoLogin: true
 };
 }
 }
])

  上图实现的功能是:

    1.点击”获取“,可以在控制台输出三个数据,邮箱、密码和选中状态(true、false)

    2.点击“设置”:可以更改两个输入框的值和复选框取消选中的状态;

    3.点击“重置”:可以让数据恢复到初始数据。

  因为输入框中的ng-model和控制器中的数值实现了双向绑定,所以更改输入框的值或者更改控制器中的值,都会相应的更改双方的值。就这么几行代码,就实现了这么强大的功能,是不是觉得很神奇呢?确实很神奇,不过,更加神奇的还在后面呢!继续吧!

四.动态切换标签样式

先看color.html的内容:

<!doctype html>
<html ng-app="MyCSSModule">
 
<head>
 <meta charset="utf-8">
 <link rel="stylesheet" href="CSS1.css">
</head>
<style type="text/css">
 .text-red {
 background-color: #ff0000;
 }
 .text-green {
 background-color: #00ff00;
 }
</style>
 
<body>
 <p ng-controller="CSSCtrl">
 <p class="text-{{color}}">测试CSS样式</p>
 <button class="btn btn-default" ng-click="setGreen()">绿色</button>
 </p>
</body>
<script src="js/angular-1.3.0.js"></script>
<script src="color.js"></script>
 
</html>

  我们看第19行:有一个“color”的变量存在于这个p标签中,当点击“绿色”时,执行setGreen函数,改变“color”的值为“green”,所以更改了类名,从而也更改了背景颜色。使用这样的方法,让我们不用去直接操作元素,而是加一个变量就行了。代码简洁直观。

  我们再看一下color.js的内容:

var myCSSModule = angular.module('MyCSSModule', []);
myCSSModule.controller('CSSCtrl', ['$scope',
 function($scope) {
 $scope.color = "red";
 $scope.setGreen = function() {
 $scope.color = "green";
 }
 }
])

  属性“color”的默认值为“red”,所以显示红色,点击时执行函数,变为绿色。

更多angularjs学习笔记之双向数据绑定相关文章请关注PHP中文网!

文档

angularjs学习笔记之双向数据绑定

angularjs学习笔记之双向数据绑定:这次我们来详细讲解angular的双向数据绑定。一.简单的例子 这个例子我们在第一节已经展示过了,要看的移步这里 这里实现的效果就是,在输入框输入内容,下面也会相应的改变对应的内容。这就实现了数据双向绑定。二.取值表达式与ng-bind的使用 我们再看一个例
推荐度:
标签: 学习 双向 angularjs
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top