diff options
| author | Misko Hevery | 2010-04-12 14:28:15 -0700 |
|---|---|---|
| committer | Misko Hevery | 2010-04-12 14:28:15 -0700 |
| commit | 2637d4e90c8a43436d21a4b9e790b00ae461c438 (patch) | |
| tree | a952ccff0f34595a6624a01e840df823665c09a9 /src/directives.js | |
| parent | 843bd355d25ebf2369aec79f98cb6704d38497e9 (diff) | |
| download | angular.js-2637d4e90c8a43436d21a4b9e790b00ae461c438.tar.bz2 | |
removed Meta and allowed binding of HTML
Diffstat (limited to 'src/directives.js')
| -rw-r--r-- | src/directives.js | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/directives.js b/src/directives.js index 22ff7544..2ead4979 100644 --- a/src/directives.js +++ b/src/directives.js @@ -23,14 +23,23 @@ angularDirective("ng-eval", function(expression){ }); angularDirective("ng-bind", function(expression){ - var templateFn = compileBindTemplate("{{" + expression + "}}"); return function(element) { - var lastValue; + var lastValue, lastError; this.$onEval(function() { - var value = templateFn.call(this, element); - if (value != lastValue) { - element.text(value); + var error, value = this.$tryEval(expression, function(e){ + error = toJson(e); + }); + if (value != lastValue || error != lastError) { lastValue = value; + lastError = error; + elementError(element, NG_EXCEPTION, error); + if (error) value = error; + if (isElement(value)) { + element.html(''); + element.append(value); + } else { + element.text(value); + } } }, element); }; @@ -57,7 +66,10 @@ function compileBindTemplate(template){ var parts = [], self = this; foreach(bindings, function(fn){ var value = fn.call(self, element); - if (isObject(value)) value = toJson(value, true); + if (isElement(value)) + value = ''; + else if (isObject(value)) + value = toJson(value, true); parts.push(value); }); return parts.join(''); |
