aboutsummaryrefslogtreecommitdiffstats
path: root/src/markup.js
diff options
context:
space:
mode:
authorMisko Hevery2010-03-25 14:43:05 -0700
committerMisko Hevery2010-03-25 14:43:05 -0700
commit4fa166866b97d4f4dbd21514dbd674347da0a109 (patch)
tree6e6a79474f47481a596fc28cb61546f9506d6db0 /src/markup.js
parentb814c79b58deeeeaa12b03261399ef80c0d6cc9f (diff)
downloadangular.js-4fa166866b97d4f4dbd21514dbd674347da0a109.tar.bz2
input select-one now works
Diffstat (limited to 'src/markup.js')
-rw-r--r--src/markup.js48
1 files changed, 30 insertions, 18 deletions
diff --git a/src/markup.js b/src/markup.js
index add7ce03..5fb10779 100644
--- a/src/markup.js
+++ b/src/markup.js
@@ -27,30 +27,42 @@ function hasBindings(bindings) {
return bindings.length > 1 || Binder.binding(bindings[0]) !== null;
};
-angularTextMarkup(function(text, textNode, parentElement) {
+angularTextMarkup('{{}}', function(text, textNode, parentElement) {
var bindings = parseBindings(text),
self = this;
- if (isLeafNode(parentElement[0])) {
- parentElement.attr('ng-bind-template', text);
- } else {
- var cursor = textNode, newElement;
- foreach(parseBindings(text), function(text){
- var exp = binding(text);
- if (exp) {
- newElement = self.element('span');
- newElement.attr('ng-bind', exp);
- } else {
- newElement = self.text(text);
- }
- cursor.after(newElement);
- cursor = newElement;
- });
+ if (hasBindings(bindings)) {
+ if (isLeafNode(parentElement[0])) {
+ parentElement.attr('ng-bind-template', text);
+ } else {
+ var cursor = textNode, newElement;
+ foreach(parseBindings(text), function(text){
+ var exp = binding(text);
+ if (exp) {
+ newElement = self.element('span');
+ newElement.attr('ng-bind', exp);
+ } else {
+ newElement = self.text(text);
+ }
+ cursor.after(newElement);
+ cursor = newElement;
+ });
+ }
+ textNode.remove();
+ }
+});
+
+angularTextMarkup('OPTION', function(text, textNode, parentElement){
+ if (parentElement[0].nodeName == "OPTION") {
+ var select = document.createElement('select');
+ select.insertBefore(parentElement[0].cloneNode(true), null);
+ if (!select.innerHTML.match(/<option(\s.*\s|\s)value\s*=\s*.*>.*<\/\s*option\s*>/gi)) {
+ parentElement.attr('value', text);
+ }
}
- textNode.remove();
});
var NG_BIND_ATTR = 'ng-bind-attr';
-angularAttrMarkup(function(value, name, element){
+angularAttrMarkup('{{}}', function(value, name, element){
if (name.substr(0, 3) != 'ng-') {
var bindings = parseBindings(value),
bindAttr;