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 就同时指向了 一个地址 所有的事情也就顺理成章了

 

转载于:https://www.cnblogs.com/BGOnline/p/5951986.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值