diff options
| author | Misko Hevery | 2010-03-31 17:56:16 -0700 | 
|---|---|---|
| committer | Misko Hevery | 2010-03-31 17:56:16 -0700 | 
| commit | 861bac1d2808b15abb867e761ded8144bf5f7e94 (patch) | |
| tree | c7acd3aba0caeddf14a77c538487cf2baff9d96a /src/Angular.js | |
| parent | 35a91085004e31f786df1e0011bc26ed0142ab4d (diff) | |
| download | angular.js-861bac1d2808b15abb867e761ded8144bf5f7e94.tar.bz2 | |
started to add services
Diffstat (limited to 'src/Angular.js')
| -rw-r--r-- | src/Angular.js | 71 | 
1 files changed, 53 insertions, 18 deletions
diff --git a/src/Angular.js b/src/Angular.js index db177082..8eef6ac0 100644 --- a/src/Angular.js +++ b/src/Angular.js @@ -4,6 +4,9 @@ if (typeof document.getAttribute == 'undefined')  if (!window['console']) window['console']={'log':noop, 'error':noop};  var consoleNode, +    PRIORITY_FIRST    = -99999; +    PRIORITY_WATCH    = -1000; +    PRIORITY_LAST     =  99999;      NOOP              = 'noop',      NG_ERROR          = 'ng-error',      NG_EXCEPTION      = 'ng-exception', @@ -21,11 +24,30 @@ var consoleNode,      angularValidator  = extensionMap(angular, 'validator'),      angularFilter     = extensionMap(angular, 'filter'),      angularFormatter  = extensionMap(angular, 'formatter'), +    angularService    = extensionMap(angular, 'service'),      angularCallbacks  = extensionMap(angular, 'callbacks'), -    angularAlert      = angular['alert']     || (angular['alert']     = function(){ -        log(arguments); window.alert.apply(window, arguments); -      }); -angular['copy'] = copy; +    urlWatcher        = new UrlWatcher(window.location); + +function angularAlert(){ +  log(arguments); window.alert.apply(window, arguments); +}; + +extend(angular, { +  'compile': compile, +  'startUrlWatch': bind(urlWatcher, urlWatcher.start), +  'copy': copy, +  'extend': extend, +  'foreach': foreach, +  'noop':noop, +  'identity':identity, +  'isUndefined': isUndefined, +  'isDefined': isDefined, +  'isString': isString, +  'isFunction': isFunction, +  'isNumber': isNumber, +  'isArray': isArray, +  'alert': angularAlert +});  function foreach(obj, iterator, context) {    var key; @@ -43,6 +65,17 @@ function foreach(obj, iterator, context) {    return obj;  } +function foreachSorted(obj, iterator, context) { +  var keys = []; +  for (var key in obj) keys.push(key); +  keys.sort(); +  for ( var i = 0; i < keys.length; i++) { +    iterator.call(context, obj[keys[i]], keys[i]); +  } +  return keys; +} + +  function extend(dst) {    foreach(arguments, function(obj){      if (obj !== dst) { @@ -285,19 +318,21 @@ function merge(src, dst) {    }  } -///////////////////////////////////////////////// - -angular['compile'] = function(element, config) { -  config = extend({ -      'onUpdateView': noop, -      'server': "", -      'location': {'get':noop, 'set':noop, 'listen':noop} -    }, config||{}); - +function compile(element, config) {    var compiler = new Compiler(angularTextMarkup, angularAttrMarkup, angularDirective, angularWidget);        $element = jqLite(element), -      rootScope = { -        '$window': window -      }; -  return rootScope['$root'] = compiler.compile($element)($element, rootScope); -}; +      rootScope = createScope({ +        $element: $element, +        $config: extend({ +          'onUpdateView': noop, +          'server': "", +          'location': { +            'get':bind(urlWatcher, urlWatcher.get), +            'set':bind(urlWatcher, urlWatcher.set), +            'watch':bind(urlWatcher, urlWatcher.watch) +          } +        }, config || {}) +      }, serviceAdapter(angularService)); +  return compiler.compile($element)($element, rootScope); +} +/////////////////////////////////////////////////  | 
