所以我设置了一个非常简单的应用程序来测试ng-click
函数:
JS:
var choreApp = angular.module('choreApp', []);
choreApp.controller('choreCtrl', function($scope){
$scope.logChore = function(chore){
alert(chore + ' is finished!')
}
})
choreApp.directive('kid', function(){
return {
restrict: 'E',
scope: {
done: '&'
},
template: "<input type=text ng-model='chore'/>{{chore}}</br>"
}
});
HTML:
<div ng-controller='choreCtrl'>
<kid done='logChore()'></kid> <div class='button' ng-click='done({chore:chore})'>Button</div>
</div>
然而,当我点击.button
时,没有任何反应。字面上没有任何反应,控制台或任何东西都没有错误。有人能解释一下原因吗?
答案 0 :(得分:0)
首先你需要引导添加ng-app
<div ng-controller='choreCtrl' ng-app="choreApp">
然后将jsfiddle设置为“No wrap in&lt; head&gt;”在左上角,而不是onLoad。
然后你打算调用的'done()'方法,包装logChore()将不会被调用,尝试添加:
choreApp.controller('choreCtrl', function($scope){
$scope.logChore = function(chore){
alert(chore + ' is finished!')
}
$scope.done = function() {
alert('done');
}
})
如果在指令中创建链接函数并调用scope.done(),则应调用logChore()。