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