将功能传递给指令AngularJS 1.5


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导致未定义。

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

尝试从data-fn属性中删除数据 - *前缀。我敢肯定会起作用。

我为您做了一个JSFIDDLE示例...

W3Schools数据 - * attr

最新更新