Javascript 角传递&;绑定多次
我能够传递&绑定一次,并且能够成功调用回调函数 但是,当我试图将回调函数传递给另一个独立的scope指令时,我无法再调用回调函数了 如何两次通过绑定范围(&B)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
.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我现在使用“=”双向绑定来传递函数,它可以工作,但是我仍然想知道如何使用'&'绑定来实现这一点