@@ -105,6 +105,59 @@ angularTextMarkup('option', function(text, textNode, parentElement){
105105 *
106106 * @element ANY
107107 * @param {template } template any string which can contain `{{}}` markup.
108+ *
109+ * @example
110+ * This example uses `link` variable inside `href` attribute:
111+ <doc:example>
112+ <doc:source>
113+ <input name="value" /><br />
114+ <a id="link-1" href ng:click="value = 1">link 1</a> (link, don't reload)<br />
115+ <a id="link-2" href="" ng:click="value = 2">link 2</a> (link, don't reload)<br />
116+ <a id="link-3" ng:href="#{{'123'}}" ng:click="value = 3">link 3</a> (link, reload!)<br />
117+ <a id="link-4" href="" name="xx" ng:click="value = 4">anchor</a> (link, don't reload)<br />
118+ <a id="link-5" name="xxx" ng:click="value = 5">anchor</a> (no link)<br />
119+ <a id="link-6" ng:href="#/{{value}}">link</a> (link, change hash)
120+ </doc:source>
121+ <doc:scenario>
122+ it('should execute ng:click but not reload when href without value', function() {
123+ element('#link-1').click();
124+ expect(element('input[name=value]').val()).toEqual('1');
125+ expect(element('#link-1').attr('href')).toBe("");
126+ });
127+
128+ it('should execute ng:click but not reload when href empty string', function() {
129+ element('#link-2').click();
130+ expect(element('input[name=value]').val()).toEqual('2');
131+ expect(element('#link-2').attr('href')).toBe("");
132+ });
133+
134+ it('should execute ng:click and change url when ng:href specified', function() {
135+ element('#link-3').click();
136+ expect(element('input[name=value]').val()).toEqual('3');
137+ expect(element('#link-3').attr('href')).toBe("#123");
138+ expect(browser().location().hash()).toEqual('123');
139+ });
140+
141+ it('should execute ng:click but not reload when href empty string and name specified', function() {
142+ element('#link-4').click();
143+ expect(element('input[name=value]').val()).toEqual('4');
144+ expect(element('#link-4').attr('href')).toBe("");
145+ });
146+
147+ it('should execute ng:click but not reload when no href but name specified', function() {
148+ element('#link-5').click();
149+ expect(element('input[name=value]').val()).toEqual('5');
150+ expect(element('#link-5').attr('href')).toBe(undefined);
151+ });
152+
153+ it('should only change url when only ng:href', function() {
154+ input('value').enter('6');
155+ element('#link-6').click();
156+ expect(browser().location().hash()).toEqual('/6');
157+ expect(element('#link-6').attr('href')).toBe("#/6");
158+ });
159+ </doc:scenario>
160+ </doc:example>
108161 */
109162
110163/**
0 commit comments