角通和&绑定不止一次

时间:2016-01-20 03:46:29

标签: javascript angularjs angularjs-directive angularjs-scope

我能够通过&绑定一次并能够成功调用回调函数。

但是,当我尝试将回调函数传递给另一个隔离的scope指令时,我无法再调用回调函数。

我怎样才能通过&绑定范围两次?

    .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'
                    });
                };
            }])
        }
    });

模板:

    <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>

并且都失败了,demo-two的控制器无法调用回调。

编辑:

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

0 个答案:

没有答案