重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要为大家展示了“angularJs指令的绑定策略有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“angularJs指令的绑定策略有哪些”这篇文章吧。
创新互联是一家集网站建设,岚县企业网站建设,岚县品牌网站建设,网站定制,岚县网站建设报价,网络营销,网络优化,岚县网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
公司最近大量使用angularJs做单页面应用,就免不了使用angularJs的一些组件,而有的组件网上有现成的,不必操心,而有的就得自食其力,先前对指令这一块的封装一直理解的不够,故每次使用directive时抽象性都做得不好,往往移植性很差,而要将抽象做好,就不得不使用指令中的隔离作用域,而光有隔离作用域又不能做好前后文的通信问题,要解决通信的问题,就要使用指令中的绑定,正好最近要用,顺便就整理了一些关于指令中的3种绑定策略,并谈了一些自己的理解。
angularJs中指令scope隔离域绑定有3种策略:如
.directive("abc",function(){ return { scope:{ title:"@", name:"=", changeNum:"&" } /* 出现了scope就表示这个指令的scope是独立的,但如果要与外界联系,就要使用绑定策略*/ /*使用@符号可将本地作用域的变量与DOM属性的值进行绑定,即我们通过@得到title属性的值*/ /*使用=符号可将本地作用域上的属性与父级作用域上的属性进行双向绑定,即我们通过=得到name的引用。可以同值传递和引用传递的理解相结合*/ /*使用&符号可以对父级作用域进行绑定,以便在其中运行函数,简单说就是绑定函数用的*/ } })
举一个详细的例子:
HTML:
AngularJs指令的三种绑定策略
说明: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将指令改写成
使用=来绑定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() 。
以上是“angularJs指令的绑定策略有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!