深入理解Angularjs向指令传递数据双向绑定机制
下面来先看一个简单例子
<!DOCTYPE html>
<html lang="zh-CN" ng-app="app">
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="../bootstrap.min.js">
</head>
<body>
<label>硬编码的input</label>
<input type="text" ng-model="Url">
<div my-directive some-attr="Url"></div>
<script src="../angular.min.js"></script>
<script>
angular.module('app', [])
.directive('myDirective', function() {
return {
restrict: 'A',
replace: true,
scope: {
myUrl: '=someAttr', // 等号用做 双向绑定 这里不做详细介绍
},
template: '<div>'+
'<label>指令中的input</label>'+
'<input type="text" ng-model="myUrl">'+
'<a href="{{ myUrl }}">点我试试</a>'+
'</div>'
}
})
</script>
</body>
</html>这个例子我用通俗的话来过一遍
1.使用隔离作用域 让DOM中的 ng-model="Url" ,这里暂且叫他'A' 与 指令中的 some-attr="Url" --> 'B' 形成双向绑定关系
scope: {
myUrl: '=someAttr',
},经过上面的步骤,B与 隔离作用域中的model myUrl 就指向了同一个地方
2.使隔离作用域中的model myUrl -->'B' 与指令模板中的 ng-model="myUrl" -->'C' 形成双向绑定关系
template: '<div>'+
'<label>指令中的input</label>'+
'<input type="text" ng-model="myUrl">'+
'<a href="{{ myUrl }}">点我试试</a>'+
'</div>'这个时候 A B C 就同时指向了 一个地址 所有的事情也就顺理成章了
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
相关推荐
xingdongfang 2019-11-10
zhenghao 2014-05-30
youyouzouzou 2014-05-30
zbwroom 2014-05-30
zbwroom 2014-05-29
鸟菜小端前 2018-09-12
lizean 2015-03-10
zbwroom 2015-04-10
Oranq 2015-08-29
CrazyDogWang 2016-01-06
lizean 2016-04-30
小新正在敲代码 2016-04-14
CrazyDogWang 2016-11-30
lizean 2016-12-19
princejingyun 2016-12-14
youyouzouzou 2017-02-24
youyouzouzou 2017-05-30
Oranq 2017-05-30
Oranq 2017-09-09