深入理解Angularjs向指令传递数据双向绑定机制
下面来先看一个简单例子
<!DOCTYPEhtml>
<htmllang="zh-CN"ng-app="app">
<head>
<metacharset="utf-8">
<title></title>
<linkrel="stylesheet"href="../bootstrap.min.js">
</head>
<body>
<label>硬编码的input</label>
<inputtype="text"ng-model="Url">
<divmy-directivesome-attr="Url"></div>
<scriptsrc="../angular.min.js"></script>
<script>
angular.module('app',[])
.directive('myDirective',function(){
return{
restrict:'A',
replace:true,
scope:{
myUrl:'=someAttr',//等号用做双向绑定这里不做详细介绍
},
template:'<div>'+
'<label>指令中的input</label>'+
'<inputtype="text"ng-model="myUrl">'+
'<ahref="{{myUrl}}">点我试试</a>'+
'</div>'
}
})
</script>
</body>
</html>
这个例子我用通俗的话来过一遍
1.使用隔离作用域让DOM中的ng-model="Url",这里暂且叫他'A'与指令中的some-attr="Url"-->'B'形成双向绑定关系
scope:{
myUrl:'=someAttr',
},
经过上面的步骤,B与隔离作用域中的modelmyUrl就指向了同一个地方
2.使隔离作用域中的modelmyUrl-->'B'与指令模板中的ng-model="myUrl"-->'C'形成双向绑定关系
template:'<div>'+
'<label>指令中的input</label>'+
'<inputtype="text"ng-model="myUrl">'+
'<ahref="{{myUrl}}">点我试试</a>'+
'</div>'
这个时候ABC就同时指向了一个地址所有的事情也就顺理成章了
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。