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

  • 相关阅读:
    ios 工具大全,最全框架
    获取APP的启动图 -Launch Image
    OCP-052考试题库汇总(3)-CUUG内部解答版
    OCP-052考题汇总(2)-CUUG内部解答版
    OCP-052考题汇总(1)-CUUG内部解答版
    【第60题】【062题库】2019年OCP认证062考试新题
    【第59题】【062题库】2019年OCP认证062考试新题
    【第58题】【062题库】2019年OCP认证062考试新题
    【第57题】【062题库】2019年OCP认证062考试新题
    【第56题】【062题库】2019年OCP认证062考试新题
  • 原文地址:https://www.cnblogs.com/stooges/p/3956112.html
Copyright © 2011-2022 走看看