aboutsummaryrefslogtreecommitdiffstats
path: root/src/ng/directive/a.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/ng/directive/a.js')
-rw-r--r--src/ng/directive/a.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/ng/directive/a.js b/src/ng/directive/a.js
new file mode 100644
index 00000000..d96af784
--- /dev/null
+++ b/src/ng/directive/a.js
@@ -0,0 +1,29 @@
+'use strict';
+
+/*
+ * Modifies the default behavior of html A tag, so that the default action is prevented when href
+ * attribute is empty.
+ *
+ * The reasoning for this change is to allow easy creation of action links with ng-click without
+ * changing the location or causing page reloads, e.g.:
+ * <a href="" ng-click="model.$save()">Save</a>
+ */
+var htmlAnchorDirective = valueFn({
+ restrict: 'E',
+ compile: function(element, attr) {
+ // turn <a href ng-click="..">link</a> into a link in IE
+ // but only if it doesn't have name attribute, in which case it's an anchor
+ if (!attr.href) {
+ attr.$set('href', '');
+ }
+
+ return function(scope, element) {
+ element.bind('click', function(event){
+ // if we have no href url, then don't navigate anywhere.
+ if (!element.attr('href')) {
+ event.preventDefault();
+ }
+ });
+ }
+ }
+});