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里是使用{{}}的表达式

  • 相关阅读:
    1304. 和为零的N个唯一整数
    557. 反转字符串中的单词 III
    集群Eureka构建步骤
    单机Eureka构建步骤——08端口服务和8001端口服务注册进Eureka
    服务注册中心——Eureka基础知识
    存活的cloud
    系统中重复部分打包成一个jar包供其他工程使用(工程重构)
    cloud-consumer-order80微服务消费者订单Module模块
    cloud-provider-payment8001微服务提供者支付Module模块
    学习SpringCloud——项目工程搭建
  • 原文地址:https://www.cnblogs.com/stooges/p/3956112.html
Copyright © 2011-2022 走看看