diff options
| author | Misko Hevery | 2011-09-08 13:56:29 -0700 | 
|---|---|---|
| committer | Igor Minar | 2011-10-11 11:01:45 -0700 | 
| commit | 4f78fd692c0ec51241476e6be9a4df06cd62fdd6 (patch) | |
| tree | 91f70bb89b9c095126fbc093f51cedbac5cb0c78 /src/parser.js | |
| parent | df6d2ba3266de405ad6c2f270f24569355706e76 (diff) | |
| download | angular.js-4f78fd692c0ec51241476e6be9a4df06cd62fdd6.tar.bz2 | |
feat(forms): new and improved forms
Diffstat (limited to 'src/parser.js')
| -rw-r--r-- | src/parser.js | 43 | 
1 files changed, 7 insertions, 36 deletions
| diff --git a/src/parser.js b/src/parser.js index f8978a0b..4934b9e6 100644 --- a/src/parser.js +++ b/src/parser.js @@ -247,8 +247,6 @@ function parser(text, json){        assignable: assertConsumed(assignable),        primary: assertConsumed(primary),        statements: assertConsumed(statements), -      validator: assertConsumed(validator), -      formatter: assertConsumed(formatter),        filter: assertConsumed(filter)    }; @@ -361,36 +359,6 @@ function parser(text, json){      return pipeFunction(angularFilter);    } -  function validator(){ -    return pipeFunction(angularValidator); -  } - -  function formatter(){ -    var token = expect(); -    var formatter = angularFormatter[token.text]; -    var argFns = []; -    if (!formatter) throwError('is not a valid formatter.', token); -    while(true) { -      if ((token = expect(':'))) { -        argFns.push(expression()); -      } else { -        return valueFn({ -          format:invokeFn(formatter.format), -          parse:invokeFn(formatter.parse) -        }); -      } -    } -    function invokeFn(fn){ -      return function(self, input){ -        var args = [input]; -        for ( var i = 0; i < argFns.length; i++) { -          args.push(argFns[i](self)); -        } -        return fn.apply(self, args); -      }; -    } -  } -    function _pipeFunction(fnScope){      var fn = functionIdent(fnScope);      var argsFn = []; @@ -735,16 +703,19 @@ function getterFn(path) {      code += 'if(!s) return s;\n' +              'l=s;\n' +              's=s' + key + ';\n' + -            'if(typeof s=="function" && !(s instanceof RegExp)) s = function(){ return l' + -              key + '.apply(l, arguments); };\n'; +            'if(typeof s=="function" && !(s instanceof RegExp)) {\n' + +              ' fn=function(){ return l' + key + '.apply(l, arguments); };\n' + +              ' fn.$unboundFn=s;\n' + +              ' s=fn;\n' + +            '}\n';      if (key.charAt(1) == '$') {        // special code for super-imposed functions        var name = key.substr(2);        code += 'if(!s) {\n' +                ' t = angular.Global.typeOf(l);\n' +                ' fn = (angular[t.charAt(0).toUpperCase() + t.substring(1)]||{})["' + name + '"];\n' + -              ' if (fn) s = function(){ return fn.apply(l, ' + -                   '[l].concat(Array.prototype.slice.call(arguments, 0))); };\n' + +              ' if (fn) ' + +                 's = function(){ return fn.apply(l, [l].concat(Array.prototype.slice.call(arguments, 0))); };\n' +                '}\n';      }    }); | 
