zoukankan      html  css  js  c++  java
  • angular : direative : scope | 指令scope里的符号@,=

     先看看以下的代码

    <body ng-app="app" ng-controller="ctrl">
        <dir myname="name"></dir>
        <script src="js/angular.js"></script>
        <script>
            var app = angular.module("app", []);
            app.controller("ctrl", function ($scope, $timeout) {
                $scope.name = "ABC";
                $timeout(function () {
                    $scope.name = "XYZ";
                    //console.log("ctrl :" + $scope.name);
                }, 2000);
            });
            app.directive("dir", function ($timeout) {
                return {
                    restrict: "E",
                    template: "<div>{{dirName}}</div>",
                    link: function (scope, elem, attr) {
                        $timeout(function () {
                            //scope.name = "XYZ";
                            console.log("dir :" + scope.dirName);
                        }, 3000);
                    },
                    scope: {
                        dirName: "=myname"
                    }
                }
            });
        </script>
    </body>
    

    以上 ^ : 一开始会显示ABC,2秒后会显示XYZ。*外面可以同步内部

            app.controller("ctrl", function ($scope, $timeout) {
                $scope.name = "ABC";
                $timeout(function () {
                    //$scope.name = "XYZ";
                    //console.log("ctrl :" + $scope.name);
                }, 2000);
            });
            app.directive("dir", function ($timeout) {
                return {
                    restrict: "E",
                    template: "<div>{{dirName}}</div>",
                    link: function (scope, elem, attr) {
                        $timeout(function () {
                            scope.dirName = "XYZ";
                            console.log("dir :" + scope.dirName);
                        }, 3000);
                    },
                    scope: {
                        dirName: "=myname"
                    }
                }
            });
    

    以上^ : 开始显示ABC,3秒后显示XYZ。*内部可以同步外部

            app.controller("ctrl", function ($scope, $timeout) {
                $scope.name = "ABC";
                $timeout(function () {
                    $scope.name = "XYZ";
                    //console.log("ctrl :" + $scope.name);
                }, 2000);
            });
            app.directive("dir", function ($timeout) {
                return {
                    restrict: "E",
                    template: "<div>{{dirName}}</div>",
                    link: function (scope, elem, attr) {
                        $timeout(function () {
                            //scope.dirName = "XYZ";
                            console.log("dir :" + scope.dirName);
                        }, 3000);
                    },
                    scope: {
                        dirName: "@myname"
                    }
                }
            });
    

    以上^ : 开始显示name,3秒后显示name。*内部的符号“@”只能拿到string

    <body ng-app="app" ng-controller="ctrl">
        <dir myname="{{name}}"></dir>
        <script src="js/angular.js"></script>
        <script>
            var app = angular.module("app", []);
            app.controller("ctrl", function ($scope, $timeout) {
                $scope.name = "ABC";
                $timeout(function () {
                    $scope.name = "XYZ";
                    //console.log("ctrl :" + $scope.name);
                }, 2000);
            });
            app.directive("dir", function ($timeout) {
                return {
                    restrict: "E",
                    template: "<div>{{dirName}}</div>",
                    link: function (scope, elem, attr) {
                        $timeout(function () {
                            //scope.dirName = "XYZ";
                            console.log("dir :" + scope.dirName);
                        }, 3000);
                    },
                    scope: {
                        dirName: "@myname"
                    }
                }
            });
        </script>
    </body>
    

    以上 ^ : 一开始会显示ABC,2秒后会显示XYZ。*外面可以同步内部,同时注意div里是使用{{}}的表达式

            app.controller("ctrl", function ($scope, $timeout) {
                $scope.name = "ABC";
                $timeout(function () {
                    //$scope.name = "XYZ";
                    //console.log("ctrl :" + $scope.name);
                }, 2000);
            });
            app.directive("dir", function ($timeout) {
                return {
                    restrict: "E",
                    template: "<div>{{dirName}}</div>",
                    link: function (scope, elem, attr) {
                        $timeout(function () {
                            scope.dirName = "XYZ";
                            console.log("dir :" + scope.dirName);
                        }, 3000);
                    },
                    scope: {
                        dirName: "@myname"
                    }
                }
            });
    

    以上 ^ : 一开始会显示ABC,2秒后会显示XYZ。*内面可以同步外部,同时注意div里是使用{{}}的表达式

  • 相关阅读:
    ZooKeeper学习第一期---Zookeeper简单介绍
    安装zookeeper(单机,伪集群)
    一张图看懂DNS域名解析全过程
    CDN基本工作过程
    第十七章、程序管理与 SELinux 初探
    直方图均衡化的缺点——不平坦
    电感耦合等离子体质谱法响应时间
    C++内容记录
    图像质量评价-NQM和WPSNR
    分颜色通道SR的相关论文
  • 原文地址:https://www.cnblogs.com/stooges/p/3956112.html
Copyright © 2011-2022 走看看