【发布时间】:2016-01-25 11:05:30
【问题描述】:
我将函数传递给指令时遇到了问题(对这篇文章很熟悉:AngularJS - pass function to directive,但我无法让它工作)
这是我的代码:
指令:
.directive('testdirective', function(){
return{
restrict: 'E',
scope: {
onClick: '&'
},
controller: 'TestController',
controllerAs: 'tc',
bindToController: true,
template: '<div><button ng-click="onClick()">What UP</button></div>',
replace: true
}
})
控制器:
TestController.$inject = ["$scope"];
function TestController($scope) {
$scope.testFunction = function(){
alert("I´m the alert of the TestContoller");
};
$scope.test = 'test';
}
HTML:
<div>
<testdirective on-click="testFunction()"></testdirective>
</div>
我想要的听起来很简单,我只想将函数传递给指令并通过 ng-click 按钮执行它。
对我来说,我的代码看起来完全是 like this fiddle 但我的不工作:/
如果有人能给我一些提示,那就太棒了。
编辑
我的指令需要他自己的控制器!
稍后要传入的函数将来自另一个控制器!!!
【问题讨论】:
-
你得到什么错误?
-
什么都没有——只是没有执行
-
工作中的 JSFiddle 在指令外部有控制器。您的代码有控制器 inside 指令。您的指令使用隔离作用域。 outside 范围内的函数不会被 inside 范围继承。
-
但是我的指令需要一个自己的控制器。稍后要传入的函数将来自另一个控制器!例如,我有一个带有函数的 TestController2,这个函数我将传递给我的指令并通过 ng-click 执行
标签: javascript angularjs