diff options
| -rw-r--r-- | src/markups.js | 3 | ||||
| -rw-r--r-- | test/markupSpec.js | 14 | 
2 files changed, 16 insertions, 1 deletions
| diff --git a/src/markups.js b/src/markups.js index 27f74518..f63dd146 100644 --- a/src/markups.js +++ b/src/markups.js @@ -69,6 +69,7 @@ angularTextMarkup('OPTION', function(text, textNode, parentElement){  });  var NG_BIND_ATTR = 'ng:bind-attr'; +var SPECIAL_ATTRS = {'ng:src': 'src', 'ng:href': 'href'};  angularAttrMarkup('{{}}', function(value, name, element){    // don't process existing attribute markup    if (angularDirective(name) || angularDirective("@" + name)) return; @@ -79,7 +80,7 @@ angularAttrMarkup('{{}}', function(value, name, element){    if (hasBindings(bindings)) {      element.removeAttr(name);      bindAttr = fromJson(element.attr(NG_BIND_ATTR) || "{}"); -    bindAttr[name] = value; +    bindAttr[SPECIAL_ATTRS[name] || name] = value;      element.attr(NG_BIND_ATTR, toJson(bindAttr));    }  }); diff --git a/test/markupSpec.js b/test/markupSpec.js index 5fe5bba9..1dd6f939 100644 --- a/test/markupSpec.js +++ b/test/markupSpec.js @@ -47,6 +47,20 @@ describe("markups", function(){      expect(sortedHtml(element).replace(' selected="true"', '')).toEqual('<select name="x"><option value="a">a</option></select>');    }); +  it('should bind href', function() { +    compile('<a ng:href="{{url}}"></a>'); +    expect(sortedHtml(element)).toEqual('<a ng:bind-attr="{"href":"{{url}}"}"></a>'); +  }); + +  it('should bind src', function() { +    compile('<img ng:src="{{url}}" />'); +    expect(sortedHtml(element)).toEqual('<img ng:bind-attr="{"src":"{{url}}"}"></img>'); +  }); + +  it('should bind href and merge with other attrs', function() { +    compile('<a ng:href="{{url}}" rel="{{rel}}"></a>'); +    expect(sortedHtml(element)).toEqual('<a ng:bind-attr="{"href":"{{url}}","rel":"{{rel}}"}"></a>'); +  });  }); | 
