1
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导致未定义。将函数传递给指令angularjs 1.5
你'doSum'函数返回的结果'X + y'而不是做一个控制台日志 – floribon
为什么会调用'doSum'用对象工作?你会注意到你正在调用'$ scope.dataFn({x:1,y:2})'而不是'$ scope.dataFn(1,2)'。 –
@MikeMcCaughan这是将本地值传递给表达式绑定的正确方法(使x和y在html中可用) – floribon