使用ng-click触发功能

时间:2014-10-17 12:02:19

标签: angularjs

http://jsfiddle.net/wr0xLj7x/

所以我设置了一个非常简单的应用程序来测试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时,没有任何反应。字面上没有任何反应,控制台或任何东西都没有错误。有人能解释一下原因吗?

1 个答案:

答案 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()。