网络编程
位置:首页>> 网络编程>> JavaScript>> 深入理解Angularjs向指令传递数据双向绑定机制

深入理解Angularjs向指令传递数据双向绑定机制

作者:冰果在线  发布时间:2024-05-02 17:38:26 

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

来源:http://www.cnblogs.com/BGOnline/p/5951986.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com