Angularjs - ng-click fonction vs directive
Je ne peux pas décider de la méthode à utiliser dans les cas suivants. Je suis tenté d'alerter en cliquant sur les boutons. Je peux le faire à l'aide de 2 méthodes. Quelle est la meilleure pratique et s'il vous plaît dites-moi pourquoi?
Méthode 1
<div ng-app="app">
<button alert>directive</button>
</div>
var app = angular.module('app', ['ngRoute']);
app
.directive('alert', function(){
return {
link: function(scope, element, attr) {
element.on('click', function(){
alert('clicked');
})
}
}
})
Méthode 2
<div ng-app="app" ng-controller="MainCtrl">
<button ng-click="go()">ng-click</button>
</div>
app.controller('MainCtrl', ['$scope', function($scope) {
$scope.go = function() {
alert('clicked');
}
}]);
Merci,
Rushan
source d'informationauteur Body
Vous devez vous connecter pour publier un commentaire.
Permettez-moi de vous expliquer cela à l'aide de l'exemple.
HTML
JS
JsFiddleLink
Comme vous pouvez le voir dans l'exemple
show-alert="[MSG]"
a été en mesure de réduire le code de la réplication par rapport à directement à l'aide de$scope.showAlert
dans chaque contrôleur. dans ce cas, la création de directive a été mieux.Mais, en cas de
$scope.showConsole
a été utilisé qu'une seule fois, nous ne sommes pas réutiliser n'importe où. donc, il est légitime de les utiliser directement à l'intérieur du contrôleur.Même si. vous pouvez également créer directive pour
showConsole
de la fonctionnalité, si vous vous sentez comme dans l'avenir, il sera utilisé ailleurs aussi. son tout à fait bien. cette décision dépend totalement de ce que le cas d'utilisation que vous avez.Si tous les éléments doivent exécuter la même fonction sur l'événement click, faisant d'elle une directive est une bonne idée. Sinon utiliser ngClick. La création d'une directive, puis en passant une fonction de gestionnaire de clic est reimplemeting la même chose.