全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解angularJs指令的3种绑定策略

今天,我来谈谈angularJs指令的3种绑定策略。

公司最近大量使用angularJs做单页面应用,就免不了使用angularJs的一些组件,而有的组件网上有现成的,不必操心,而有的就得自食其力,先前对指令这一块的封装一直理解的不够,故每次使用directive时抽象性都做得不好,往往移植性很差,而要将抽象做好,就不得不使用指令中的隔离作用域,而光有隔离作用域又不能做好前后文的通信问题,要解决通信的问题,就要使用指令中的绑定,正好最近要用,顺便就整理了一些关于指令中的3种绑定策略,并谈了一些自己的理解。

angularJs中指令scope隔离域绑定有3种策略:如

.directive("abc",function(){
   return {
     scope:{          
        title:"@",      
        name:"=",      
        changeNum:"&"    
     } 
/* 出现了scope就表示这个指令的scope是独立的,但如果要与外界联系,就要使用绑定策略*/
/*使用@符号可将本地作用域的变量与DOM属性的值进行绑定,即我们通过@得到title属性的值*/
/*使用=符号可将本地作用域上的属性与父级作用域上的属性进行双向绑定,即我们通过=得到name的引用。可以同值传递和引用传递的理解相结合*/
/*使用&符号可以对父级作用域进行绑定,以便在其中运行函数,简单说就是绑定函数用的*/
   }
})

举一个详细的例子:

HTML:

<div ng-controller="test">
<div>AngularJs指令的三种绑定策略</div>
<example title="titleExample" name="nameExample" send-message="parentSendMessage('example')">
</example>
</div>

说明:example是自定义的指令,用以展示指令的三种绑定策略。

使用@来绑定title,以获取DOM中的属性值。

   directive:
   myApp.directive("example",function(){
    return {
      restrict:"E",
      scope:{
        title:"@", 
      },
      link:function($scope,element,attrs){
        console.log($scope.title); ==> titleExample
      }
    } 
   })

说明:@绑定策略,可以将title值与父级作用域的值绑定,比如父级作用域有一个属性是testTitle,我们想将指令中的title属性的值与父级作用域中testTitle的值绑定,故我们可以在HTML将指令改写成<example title={{testTitle}}></example>,这样我们就可以在.directive中通过子作用域中的$scope.title获取到父级作用域$scope.testTitle的值。

使用=来绑定name,以将子作用域与父作用域的属性进行双向绑定。

   directive:
   myApp.directive("example",function(){
    return {
      restrict:"E",
      scope:{
        name:"=",
      },
      link:function($scope,element,attrs){
        console.log($scope.name); ==> nameTest
      }
    }
   })
     
  //父级作用域的控制器
   controller:
   myApp.controller("test",function($scope){
     $scope.nameExample = "nameTest"
   })

说明:在实际生产中,这一绑定策略十分有效,譬如说,假定我在指令中要返回一个对象给父级作用域,这时通过“@"这一"值传递"方法已经不能满足需求了,此时就应该考虑"="这一"引用传递",因为通过name="nameExample"这一声明,就将子作用域的$scope.name与父作用域的$scope.nameExample绑定在一起,可以认为他们指向同一地址,不论修改哪个都会影响对方。

使用&来绑定sendMessage ,以将子作用域与父作用域的方法进行绑定。

   directive:
   myApp.directive("example",function(){
    return {
      restrict:"E",
      scope:{
        sendMessage:"&",
      },
      link:function($scope,element,attrs){
      }
    }
   })

  //父级作用域的控制器
   controller:
   myApp.controller("test",function($scope){
     $scope.parentSendMessage = function(content){
        alert(content);
     }
   })

说明:可以看到"&"绑定就是让子作用域可以使用父级作用域中的方法,这样就可以利用父级作用域$scope.parentSendMessage ()中的一些数据进行运算,并将结果返回给子作用域$scope.sendMessage() 。

希望这篇浅见能对你了解指令隔离域的3种绑定策略有些许帮助!也希望大家多多支持。


# angularjs  # 绑定策略  # angular  # 指令绑定策略  # 指令绑定  # Angularjs中三种数据的绑定策略(“@”  # “=”  # “&”)  # AngularJS指令中的绑定策略实例分析  # 详解angularjs中的隔离作用域理解以及绑定策略  # angularjs指令之绑定策略(@、=、&)  # angularJS 中$scope方法使用指南  # AngularJS中监视Scope变量以及外部调用Scope方法  # 深入解析AngularJS框架中$scope的作用与生命周期  # AngularJs Scope详解及示例代码  # 浅谈AngularJs指令之scope属性详解  # AngularJS中scope的绑定策略实例分析  # 绑定  # 这一  # 三种  # 可将  # 就可以  # 自己的  # 我在  # 我来  # 自食其力  # 譬如说  # 我们可以  # 要用  # 并将  # 可以看到  # 做得  # 自定义  # 就得  # 可以使用  # 又不  # 时就 


相关文章: 武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  建设网站制作价格,怎样建立自己的公司网站?  建站之星如何快速更换网站模板?  如何解决VPS建站LNMP环境配置常见问题?  如何选择最佳自助建站系统?快速指南解析优劣  建站之星在线版空间:自助建站+智能模板一键生成方案  如何在Golang中使用encoding/gob序列化对象_存储和传输数据  视频网站app制作软件,有什么好的视频聊天网站或者软件?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  如何选择高效稳定的ISP建站解决方案?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  如何零基础开发自助建站系统?完整教程解析  北京建设网站制作公司,北京古代建筑博物馆预约官网?  购物网站制作公司有哪些,哪个购物网站比较好?  香港服务器租用每月最低只需15元?  如何做网站制作流程,*游戏网站怎么搭建?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  威客平台建站流程解析:高效搭建教程与设计优化方案  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  家具网站制作软件,家具厂怎么跑业务?  ,怎么在广州志愿者网站注册?  如何生成腾讯云建站专用兑换码?  网站制作难吗安全吗,做一个网站需要多久时间?  网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?  北京的网站制作公司有哪些,哪个视频网站最好?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  建站DNS解析失败?如何正确配置域名服务器?  如何在IIS中新建站点并配置端口与IP地址?  网站制作公司广州有几家,广州尚艺美发学校网站是多少?  如何通过老薛主机一键快速建站?  兔展官网 在线制作,怎样制作微信请帖?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  制作旅游网站html,怎样注册旅游网站?  C++如何使用std::optional?(处理可选值)  盘锦网站制作公司,盘锦大洼有多少5G网站?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  深圳 网站制作,深圳招聘网站哪个比较好一点啊?  网站制作话术技巧,网站推广做的好怎么话术?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  建站之星安装需要哪些步骤及注意事项?  海南网站制作公司有哪些,海口网是哪家的?  如何通过WDCP绑定主域名及创建子域名站点?  建站之星后台密码如何安全设置与找回?  如何通过主机屋免费建站教程十分钟搭建网站?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  如何用y主机助手快速搭建网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。