Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角传递&;绑定多次_Javascript_Angularjs_Angularjs Directive_Angularjs Scope - Fatal编程技术网

Javascript 角传递&;绑定多次

Javascript 角传递&;绑定多次,javascript,angularjs,angularjs-directive,angularjs-scope,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,我能够传递&绑定一次,并且能够成功调用回调函数 但是,当我试图将回调函数传递给另一个独立的scope指令时,我无法再调用回调函数了 如何两次通过绑定范围(&B) .directive('demoOne', function() { return { template: '<div><div>demo one</div>' + '<button ng-c

我能够传递&绑定一次,并且能够成功调用回调函数

但是,当我试图将回调函数传递给另一个独立的scope指令时,我无法再调用回调函数了

如何两次通过绑定范围(&B)

    .directive('demoOne', function() {
        return {
            template: '<div><div>demo one</div>' +
                            '<button ng-click="test()">demo-one</button>' + 
                            '<demo-two demotwocb="demoonecb"></demo-two>' + 
                        '</div>',
            scope: {
                demoonecb: '&',
            },
            controller: ('demoOneCtrl', ['$scope', function($scope) {
                $scope.test = function() {
                    $scope.demoonecb({
                        text: 'demonetext'
                    });
                };
            }])
        }
    })
    .directive('demoTwo', function() {
        return {
            template: '<div><button ng-click="test()">demo-two</button></div>',
            scope: {
                demotwocb: '&',
            },
            controller: ('demoTwoCtrl', ['$scope', function($scope) {
                $scope.test = function() {
                    $scope.demotwocb({
                        text: 'demtwotext'
                    });
                };
            }])
        }
    });
.directive('demoOne',function(){
返回{
模板:“演示一”+
“演示一号”+
'' + 
'',
范围:{
demoonecb:“&”,
},
控制器:('demoOneCtrl',['$scope',函数($scope){
$scope.test=函数(){
$scope.demoonecb({
文本:“demonetext”
});
};
}])
}
})
.directive('demowo',function(){
返回{
模板:“演示二”,
范围:{
"及",,
},
控制器:('demowoctrl',['$scope',函数($scope){
$scope.test=函数(){
$scope.wocb({
文本:“demtwotext”
});
};
}])
}
});
模板:

    <demo-one demoonecb="vm.demo(text)"></demo-one>

我已经试着将demoonecb传递给

<demo-two demotwocb="demoonecb(text)"></demo-two>
<demo-two demotwocb="demoonecb()"></demo-two>
<demo-two demotwocb="demoonecb"></demo-two>

并且都失败了,演示2的控制器无法调用回调

编辑:


我现在使用“=”双向绑定来传递函数,它可以工作,但我仍然想知道如何使用'&'绑定来实现这一点

如果在父作用域中创建一个变量,然后将其传递给这两个指令以用作回调函数载体,该怎么办?您应该只将函数名:
demoonecb
转移到指令中,如最后一行代码所示:
,不带大括号和参数。您将通过如上所示的
$scope.test
函数执行它并在指令中指定参数对象。@SlavaUtesinov我试图用大括号或参数传递,但无法从DemowoCtrl$scope.test传递文本参数function@ManasovDaniel我现在使用“=”双向绑定来传递函数,它可以工作,但我仍然想知道如何使用'&'绑定来实现这一点。如果您在父作用域中创建一个变量,然后将其传递给这两个指令以用作回调函数载体,该怎么办?您应该只传递到指令函数的名称:
demoonecb
,如最后一行代码所示:
,不带大括号和参数。您将通过如上所示的
$scope.test
函数执行它并在指令中指定参数对象。@SlavaUtesinov我试图用大括号或参数传递,但无法从DemowoCtrl$scope.test传递文本参数function@ManasovDaniel我现在使用“=”双向绑定来传递函数,它可以工作,但是我仍然想知道如何使用'&'绑定来实现这一点