首页 > 其他分享 >angular指令scope隔离数据

angular指令scope隔离数据

时间:2022-11-01 00:23:08浏览次数:63  
标签:function directive app vm aaaa 指令 scope angular

111

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>AngularJS 指令属性link</title>
<script src="https://cdn.bootcss.com/angular.js/1.7.0/angular.min.js"></script>
<script src="https://cdn.bootcss.com/angular.js/1.7.0/angular-route.min.js"></script>
</head>
<body ng-app='app'>
    <div>
        指令中的控制器里面的scope参数可以穿越多层,是因为没有设置scope值,而独立的控制器里的scope,只能在自己的控制器范围内有效,即在子控制器里面也可以。
        <br>
        {{vm.aaaa}}
        <hr>
        {{test}}
        <hr>
        <custom-directive></custom-directive>
        <hr>
        9999
        {{bigTest}}
        <hr>
        <div ng-controller="myTest">
            {{vm.aaaa}}
            <br>
            {{bigTest}}
            <br>
            {{test}}
            <br>
            ========
            {{sonTest}} 777
            <hr>
            <div ng-controller="childTest">
                {{sonTest}}
                <br>
                {{bigTest}}
            </div>
        </div>
    </div>
      
    <script type="text/javascript">
    angular
    .module('app',[])
    .directive('customDirective', customDirective).controller("myTest",function($scope){
        $scope.bigTest="我可以穿越么?";
    }).controller("childTest",function($scope){
        $scope.sonTest="我是son控制器";
    });

        function customDirective() {
            var directive = {
                restrict: 'EA',
                template: '<div>{{test}} {{vm.aaaa}}</div>',
                //scope:true,是你在起作用
                link: function(){},
                controller: directiveController,
                controllerAs: 'vm' //注释之后顶层 vm.aaaa 失效
            };
            return directive;
        }
        function directiveController($scope) {
            var vm = this;
            vm.aaaa="这是数据";
            console.log(vm,"ddddd")
            $scope.test = "I'm from Controller";
           // return vm;
        }
    </script>
</body>
</html>

 

 

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>AngularJs控制器</title>
    <script src="https://cdn.bootcss.com/angular.js/1.7.0/angular.min.js"></script>
    
</head>

<body ng-app='app'>
  {{vm.aaaa}}
  {{fromData}}
    <div >
     <div >我是父类</div>
     {{myaddress}}
     {{myData}}
     <hr>
     {{vm.aaaa}}
     <my-directive  my-data="myaddress" my-click="topClick(outData)"></my-directive>
    </div>
</body>
<script type="text/javascript">
  var app = angular.module('app', []);
    app.directive('myDirective',myDirective);
    function myDirective(){
      var directive={
          restrict:'AE',
          template:"<div ng-click='sonClick(1111)'>点击我</div><div>内部:{{innerData}}//{{fromData}}</div>",
          scope:{
            selectData:"&myClick",
            innerData:"=myData"
          },
          controller:directiveController,
          link:function(scope,ele,attr){
            scope.sonClick=function(aaa){
              scope.selectData({outData:aaa}); 
            }  
          },
          controllerAs: 'vm'
          
       }
       return directive;
    };
    function directiveController($scope) {
            var vm = this;
            vm.aaaa="这是数据";
            console.log(vm,"ddddd")
            $scope.fromData = "我来自指令数据";
           // return vm;
        }
    // app.controller("mydemo",["$scope",function($scope){
    //     $scope.topClick = function(aa){
    //         alert(aa);
    //     }
    //     $scope.myaddress="广州"; //初始化数据
    // }])
  </script>
</html>

 

标签:function,directive,app,vm,aaaa,指令,scope,angular
From: https://www.cnblogs.com/xiaohuasan/p/16846400.html

相关文章

  • angular 指令学习
    在指令中scope定义的值的用法:例如 scope:{   local:"@nameprop",   secondLocal:"@secondNameprop",   secondLocalTest:"@threeNameprop"  ......
  • vue指令方式实现element table高度随浏览器和部分dom变化适应
    主要代码v-resize="resetTableHeight"//监听高度变化resetTableHeight(){//监听到searchArea高度变化使ivu-table-body高度发生改变if(document.getElements......
  • angular8 antd design 中Select选择器allowClear清除属性失效和单个点击删除
    解决方法1:参考链接:https://blog.51cto.com/u_15064644/4338712解决方法二:changeDetectorRef.detectChanges() <nz-selectnzMode="tags" name="tests"[(ngModel)]=......
  • CloudFoundry User Account and Authentication (UAA) Server‘s Scope System
    文章目录​​导读​​​​UAA里所有可以配置权限的地方​​​​UAA里关于权限的几个概念​​​​5分钟学会UAA的权限配置​​​​请求accesstoken的方式对权限配置的......
  • Sping Web Bean Scope
    下面这几篇文章看完之后,应该对requestscope和sessionscope的Bean注入到Sington的Bean时的原理。我提供了一个示例​​spring-web-scope-samples​​,基于Spring......
  • #yyds干货盘点#Vue3.2 新指令 v-memo解析
    v-memo官方定义缓存一个模板的子树。在元素和组件上都可以使用。为了实现缓存,该指令需要传入一个固定长度的依赖值数组进行比较。如果数组里的每个值都与最后一次的渲染相......
  • LcdTools如何编写初始化代码之--SPI指令
    在点屏过程中经常会碰到需要通过SPI接口对DriverIC下初始化代码后才能点亮,常见于LVDS、RGB屏,那如何在LcdTools上编写PX01SPI初始化代码呢?通过LcdTools帮助文档可以查看S......
  • angular入门篇8----Http模块的使用(2):使用接口
    angular入门篇8----Http模块的使用(2):使用接口1.创建Http服务1.1注册HttpClientModule模块我们需要在model.module.ts中注册HttpClientModule模块:\Store\src\app\mod......
  • cmd的基础操作和快捷指令
    打开CMD的方式开始+系统+命令提示符win键+r输入cmd打开控制台(推荐使用)在桌面空白处按住shift键+鼠标右键+s键资源管理器的地址栏前面加上cmd+空格 管......
  • 汇编语言-8086指令(上)
    数据传送指令汇编语言中字母开头通常表示标识符(如常量、变量、标号),所以MASM规定十六进制数如果以字母开头需要添加前导0。当目的操作数是存储单元,而源操作数既可以是字又......