• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

angularjs 搞代码 4年前 (2021-12-31) 38次浏览 已收录 0个评论

AngularJS在$scope变量中使用脏值检查来实现了数据双向绑定。和Ember.js数据双向绑定中动态设施setter和g来源gaodai#ma#com搞*!代#%^码网etter不同,脏治检查允许AngularJS监视那些存在或者不存在的变量。

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

一.简单的例子

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

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

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

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

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

    比如我们可以把

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

    改为:

 "<p><span></span><span></span></p>"; 

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

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

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

  先看一个form.html的内容:

    <div class="panel panel-primary"> <div class="panel-heading"> <div class="panel-title">双向数据绑定</div></div><div class="panel-body"> <div class="row"> <div class="col-md-12">  <div class="form-group"> <label class="col-md-2 control-label"> 邮箱: </label><div class="col-md-10"> </div></div><div class="form-group"> <label class="col-md-2 control-label"> 密码: </label><div class="col-md-10"> </div></div><div class="form-group"> <div class="col-md-offset-2 col-md-10"> <div class="checkbox"> <label> 自动登录 </label></div></div></div><div class="form-group"> <div class="col-md-offset-2 col-md-10"> <button class="btn btn-default">获取Form表单的值</button><button class="btn btn-default">设置Form表单的值</button><button class="btn btn-default">重置表单</button></div></div></div></div></div></div>

  再看Form.js的内容:

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

  实现效果截图如下:

  上图实现的功能是:

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

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

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

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

四.动态切换标签样式

先看color.html的内容:

    .text-red { background-color: #ff0000; } .text-green { background-color: #00ff00; }  <div> <p class="text-{{color}}">测试CSS样式</p><button class="btn btn-default">绿色</button></div>

  我们看第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学习笔记之双向数据绑定的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:angularjs学习笔记之双向数据绑定

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址