我在这里错过了什么吗?
我不能从模板showHelp()
访问功能ng-click
吗?
我已经和我斗争了好几个小时,我无法做到正确
angular.module('starter.directives', [])
.directive('errorMessage', function() {
return {
restrict: 'E',
require: '^form',
scope: true,
template:'<button ng-click="showHelp()" class="button icon ion-android-alert button-outline button-assertive"></button>',
link: function(scope, element, attrs, formCtrl) {
scope.showHelp = function(){
console.log('hello');
}
}
};
});
答案 0 :(得分:2)
您的代码没有任何问题。我猜你只是忘了在你的HTML中包含该模块。看起来像
的东西<div ng-app="starter.directives">
....
</div>
Here's您的代码在jsFiddle
中正常运行答案 1 :(得分:0)
您应该在controller
而不是link
功能中添加它。 >>在所有内容呈现后,link
函数运行。
angular.module('starter.directives').directive('errorMessage', function() {
return {
restrict: 'E',
scope: true,
template:'<button ng-click="showHelp()" class="button icon ion-android-alert button-outline button-assertive">Test</button>',
controller: function($scope) {
$scope.showHelp = function(){
console.log('hello');
}
}
};
});
我认为问题在于您通过在此处传递[]
来重新初始化您的模块
angular.module('starter.directives', [])
如果您将第二个参数传递给angular.module,它会认为您传递了一系列依赖项并将重新启动该模块。