AngularJS – 传递函数到指令

前端之家收集整理的这篇文章主要介绍了AngularJS – 传递函数到指令前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个例子angularJS
<div ng-controller="testCtrl">

<test color1="color1" updateFn="updateFn()"></test>
</div>
 <script>
  angular.module('dr',[])
.controller("testCtrl",function($scope) {
    $scope.color1 = "color";
    $scope.updateFn = function() {
        alert('123');
    }
})
.directive('test',function() {
    return {
        restrict: 'E',scope: {color1: '=',updateFn: '&'},template: "<button ng-click='updateFn()'>Click</button>",replace: true,link: function(scope,elm,attrs) { 
        }
    }
});

</script>
</body>

</html>

我想当我点击按钮,警报框会出现,但没有显示

谁能帮助我?

要从一个隔离范围指令内部调用父范围中的控制器函数,在HTML中使用dash-separated属性名称,就像OP所说的。

另外,如果你想发送一个参数到你的函数,通过传递一个对象来调用函数

<test color1="color1" update-fn="updateFn(msg)"></test>

JS

var app = angular.module('dr',[]);

app.controller("testCtrl",function($scope) {
    $scope.color1 = "color";
    $scope.updateFn = function(msg) {        
        alert(msg);
    }
});

app.directive('test',scope: {
            color1: '=',updateFn: '&'
        },// object is passed while making the call
        template: "<button ng-click='updateFn({msg : \"Hello World!\"})'>
            Click</button>",attrs) {             
        }
    }
});

Fiddle

猜你在找的Angularjs相关文章