From 258ca5f16581f0e8befa493644225a02ae2fc002 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Fri, 26 Mar 2010 16:27:18 -0700 Subject: moved all uneeded files out, widgets.html works, tests horribly broken --- src/directives.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/directives.js') diff --git a/src/directives.js b/src/directives.js index 10476c77..c54c89e9 100644 --- a/src/directives.js +++ b/src/directives.js @@ -11,9 +11,15 @@ angularDirective("ng-eval", function(expression){ }); angularDirective("ng-bind", function(expression){ + var templateFn = compileBindTemplate("{{" + expression + "}}"); return function(element) { - this.$watch(expression, function(value){ - element.text(value); + var lastValue; + this.$onEval(function() { + var value = templateFn.call(this); + if (value != lastValue) { + element.text(value); + lastValue = value; + } }, element); }; }); @@ -34,7 +40,9 @@ function compileBindTemplate(template){ bindTemplateCache[template] = fn = function(){ var parts = [], self = this; foreach(bindings, function(fn){ - parts.push(fn.call(self)); + var value = fn.call(self); + if (isObject(value)) value = toJson(value, true); + parts.push(value); }); return parts.join(''); }; @@ -125,6 +133,7 @@ angularDirective("ng-action", function(expression, element){ var self = this; element.click(function(){ self.$tryEval(expression, element); + self.$eval(); }); }; }); -- cgit v1.2.3