diff options
Diffstat (limited to 'src/Scope.js')
| -rw-r--r-- | src/Scope.js | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/Scope.js b/src/Scope.js index 4d2aa5c3..86d5bc14 100644 --- a/src/Scope.js +++ b/src/Scope.js @@ -130,7 +130,8 @@ function createScope(parent, services, existing) { $set: bind(instance, setter, instance), $eval: function $eval(exp) { - if (exp === undefined) { + var type = typeof exp; + if (type == 'undefined') { for ( var i = 0, iSize = evalLists.sorted.length; i < iSize; i++) { for ( var queue = evalLists.sorted[i], jSize = queue.length, @@ -138,18 +139,19 @@ function createScope(parent, services, existing) { instance.$tryEval(queue[j].fn, queue[j].handler); } } - } else if (typeof exp === 'function'){ + } else if (type === 'function') { return exp.call(instance); - } else { + } else if (type === 'string') { return expressionCompile(exp).call(instance); } }, $tryEval: function (expression, exceptionHandler) { + var type = typeof expression; try { - if (typeof expression == 'function') { + if (type == 'function') { return expression.call(instance); - } else { + } else if (type == 'string'){ return expressionCompile(expression).call(instance); } } catch (e) { |
