cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - angular指令中的scope属性中用&获取父作用域函数的问题

请问为什么alert中最后弹出的数据是父作用域的

点击执行子域的say方法的结果

代码如下:

<p ng-app="myModule">
    <h3>请分别修改父、子作用域表单里的值</h3>
    <p ng-controller="myController">
        父作用域:<br/>
        <input type="text" ng-model="name" /><br/>
        <input type="text" ng-model="sex" /><br/>
        <input type="button" ng-click="say()" value="点击执行父域的say方法" /><br/>
        子作用域:<br/>
        <my-directive my-name="{{name}}" my-sex="sex" get-name='say()'></my-directive><br/>
    </p>

</p>
<script src="../angular-1.5.8/angular.js"></script>
<script type="text/javascript">
    var myModule = angular.module("myModule", []);
    myModule.controller("myController", ['$scope', function($scope){
        $scope.name = "wangmeijian";
        $scope.sex = "boy";
        $scope.say = function(){
            alert( $scope.name +" is a"+ $scope.sex )
        }
    }])
    myModule.directive("myDirective", function(){
        return {
            restrict: "EA",
            scope: {
                myName: "@",
                mySex: "=",
                getName: "&"
            },
            template: "<input type='text' ng-model='myName' /><br/>"+
            "<input type='text' ng-model='mySex' /><br/>"+
            "<input type='button' ng-click='getName()' value='点击执行子域的say方法' />",
        }
    })

</script>
ringa_leeringa_lee2741 hari yang lalu513

membalas semua(1)saya akan balas

  • 黄舟

    黄舟2017-05-15 17:09:51

    Pertama sekali, apa yang tertera ialah nama dan jantina. Kemudian terdapat myName dan mySex dalam subskop anda.
    Selain itu, apa yang dicetak dalam katakan adalah nama dan jantina dalam persekitaran semasa Terdapat konsep penutupan di sini, berikut adalah contoh

    var fn ;

    function test1() {
        var t = 1;
        fn = function(){
            console.log(t);
        }
    }
    function test2() {
        var t = 2;
        fn();
    }
    test1();
    test2();  //打印的是 1
    

    balas
    0
  • Batalbalas