代码
<div scope-isolation reversename="reverseNameFn()"></div>
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.reverseNameFn = function(message){
console.log(message); //undefined
return message;
}
});
app.directive('scopeIsolation', function() {
return{
scope : {
'reversename' : '&'
},
template : '<input type="text" ng-model="value"> {{value}} <button ng-click="reversename({message : value})">click me</button>',
link : function(scope,elem,attrs){
console.log("Inside scope isolation directive");
}
}
});
当调用reversename({message:value})时,函数中的消息对象未定义。
答案 0 :(得分:1)
处理&
时,会对您的表达式进行评估。您传递的表达式为reverseNameFn()
。
如果要动态传递变量,请使用=
绑定:
'reversename' : '='
在你的HTML中:
<div scope-isolation reversename="reverseNameFn"></div>