将函数传递给指令angularjs 1.5

时间:2017-02-20 21:36:22

标签: angularjs

app.controller('myController', [
    '$scope', function ( $scope ) {
        $scope.doSum = function(x, y){
            console.log(x+y);
        };
    }
]);


<cmp data-fn="doSum(x, y)"></cmp>


app.directive('cmp', function(){ 
    return{

        templateUrl: 'ui/cmp.html'
        ,
        replace: true
        ,
        scope: { 
            dataFn: '&' 
        }
        ,
        controller: ['$scope' function($scope){

                var v = $scope.dataFn({x: 1, y: 2});

                console.log(v);

            }
        ]
    }
});

我试图将一个函数从控制器传递给angularjs 1.5中的指令。根据所有教程,这是它的完成方式。但是我无法让它发挥作用。你能帮我么?该函数根本没有传递,v结果未定义。

1 个答案:

答案 0 :(得分:0)

问题是属性中的data-*前缀。它用于嵌入非标准HTML属性。

尝试从data-fn属性中删除data- *前缀。我相信我会工作。

我为你做了JsFiddle example ......

W3Schools data-* attr