我所理解的AngularJS指令和控制器的交互原理

用angularJS做框架开发也有一段时间了,一开始一直搞不清指令和控制器是如何交互的。后来查阅了诸多资料,借鉴了很多开发前辈的资料,对他们之间是如何交互也理清了一点头绪,现在简单分享一下,如果有说的不对的地方还请诸位前辈指教


在这里,我仅仅以AngularJS 指令中的‘@’来做解释。
先给出静态页面(因为写的比较简单,所以我就省略了样式):

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <meta charset="utf-8"/>
    <link rel="stylesheet" href="css/test.css"/>
    <script type="text/javascript" src="vendor/angular/angular.js"></script>
</head>
<body  ng-app="myModule">
   <div ng-controller="myController">
       <span> 这是个demo。后面是测试结果:</span>
       <my-test attr="{{value}}"></my-test>
   </div>
   <script type="text/javascript" src="js/test.js"></script>
</body>
</html>

test.js:

var myNodule = angular.module('myModule',[]);
myNodule.controller('myController',['$scope',function($scope){
    $scope.value = "Gecko";
}]);
myNodule.directive('myTest',function(){
    return{
        restrict:'E',
        scope:{
            attr:'@'
        },
        template:'<span>{{attr}}</span>'
    }
});

给出结果:
这里写图片描述

我理解的指令和控制器的交互原理大致分为三步:
1. 指令通过‘@’实现与HTML页面元素的关联;
2. 控制器中又通过$scope实现了与页面元素的联系;
3. 从而借助HTML页面。建立起了指令与控制器之间的联系。

不知道自己理解的对不对,如果理解的不对,欢迎前辈指教更正。也欢迎大家与我一起交流Angular的知识~谢谢!

猜你喜欢

转载自blog.csdn.net/u011070165/article/details/62884300