zoukankan      html  css  js  c++  java
  • 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 就同时指向了 一个地址 所有的事情也就顺理成章了

  • 相关阅读:
    java--接口和抽象类
    java-访问权限
    Appium点击掉弹窗的方法小记
    Appium报错及解决小记
    adb获取手机设备蓝牙&热点&wifi状态并操作的笔记
    Linux下安装appium环境搭建杂记
    Appium的使用笔记(自动化测试前的分析)
    Docker学习笔记
    python学习杂记-DDT驱动测试
    python学习杂记-处理CSV文件
  • 原文地址:https://www.cnblogs.com/BGOnline/p/5951986.html
Copyright © 2011-2022 走看看