A function like: ng-click=“alert('Clicked&

2019-06-23 10:53发布

问题:

For a mockup I need a simple mechanism like

ng-click="alert('Clicked')"

but the code above is not working, can someone help me? I don't want to touch the Controller..

回答1:

As far as I know, ng-click works only within your $scope. So you would only be able to call functions, defined in your $scope itself. To use alert, you may try accessing the window element, just by using window.alert('Clicked').

EIDT: Thanks to Ibrahim. I forgot. You shouldn't be able to use window.alert, as far as you won't define:

$scope.alert = window.alert;

In this case, using alert('Clicked') in your ng-clicked directive should work. But at the end, this method would not solve your problem of not touching your controller.



回答2:

Refer to previous answer, ng-click = "alert('Hello World!')" will work only if $scope points to window.alert i.e

$scope.alert = window.alert;

But even it creates eval problem so correct syntax must be:

HTML

<div ng-click = "alert('Hello World!')">Click me</div>

Controller

$scope.alert = function(arg){
    alert(arg);
}


回答3:

As Neeraj mentioned, the accepted answer does not work. Add something like this to your controller to avoid an Illegal Invocation error:

$scope.alert = alert.bind(window);