angular.js - angular指令中的scope属性中用&获取父作用域函数的问题
ringa_lee
ringa_lee 2017-05-15 17:07:51
0
1
511

请问为什么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_lee
ringa_lee

ringa_lee

membalas semua(1)
黄舟

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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan