参数未在指令函数中传递

Arguments are not being passed in directive function

本文关键字:函数 指令 参数      更新时间:2023-09-26

Code

<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}) 被调用时,消息对象在函数中是未定义的。

普朗克尔 : http://plnkr.co/edit/c2hch5Kozr9yjRLWN6K9?p=preview

在处理&时,你的表达式会被计算。你通过的表情是reverseNameFn().

如果要动态传递变量,请使用=绑定:

'reversename' : '='

在您的 HTML 中:

<div scope-isolation reversename="reverseNameFn"></div>