From bd8293d2a5da2d0c2d1fdaf7327a329730e38980 Mon Sep 17 00:00:00 2001 From: Elmar Athmer Date: Fri, 30 Aug 2013 17:57:59 +0200 Subject: [PATCH 1/2] fix typo --- angularjs/angular-tests.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/angularjs/angular-tests.ts b/angularjs/angular-tests.ts index 500cb0b4f..8e458de99 100644 --- a/angularjs/angular-tests.ts +++ b/angularjs/angular-tests.ts @@ -149,7 +149,7 @@ module HttpAndRegularPromiseTests { } } -// Test for AngularJS Syntac +// Test for AngularJS Syntax module My.Namespace { export var x; // need to export something for module to kick in From 01912ae5e7af39a981d9611c5769f5c39464353c Mon Sep 17 00:00:00 2001 From: Elmar Athmer Date: Fri, 30 Aug 2013 18:01:32 +0200 Subject: [PATCH 2/2] add support for angular.element angular.element augments the JQuery object for the given element with angular specific methods like e.g. access for the scope. --- angularjs/angular-tests.ts | 7 +++++++ angularjs/angular.d.ts | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) mode change 100644 => 100755 angularjs/angular.d.ts diff --git a/angularjs/angular-tests.ts b/angularjs/angular-tests.ts index 8e458de99..6a6892f57 100644 --- a/angularjs/angular-tests.ts +++ b/angularjs/angular-tests.ts @@ -210,3 +210,10 @@ foo.then((x) => { // x is infered to be a number, which is the resolved value of a promise x.toFixed(); }); + + +// angular.element() tests +var element = angular.element("div.myApp"); +var scope: ng.IScope = element.scope(); + + diff --git a/angularjs/angular.d.ts b/angularjs/angular.d.ts old mode 100644 new mode 100755 index cf01c8521..429a79b48 --- a/angularjs/angular.d.ts +++ b/angularjs/angular.d.ts @@ -33,7 +33,7 @@ declare module ng { bootstrap(element: JQuery, modules?: any[]): auto.IInjectorService; bootstrap(element: Element, modules?: any[]): auto.IInjectorService; copy(source: any, destination?: any): any; - element: JQueryStatic; + element: IAugmentedJQueryStatic; equals(value1: any, value2: any): boolean; extend(destination: any, ...sources: any[]): any; forEach(obj: any, iterator: (value: any, key: any) => any, context?: any): any; @@ -669,6 +669,38 @@ declare module ng { compile?: Function; } + /////////////////////////////////////////////////////////////////////////// + // angular.element + // when calling angular.element, angular returns a jQuery object, + // augmented with additional methods like e.g. scope. + // see: http://docs.angularjs.org/api/angular.element + /////////////////////////////////////////////////////////////////////////// + interface IAugmentedJQueryStatic extends JQueryStatic { + (selector: string, context?: any): IAugmentedJQuery; + (element: Element): IAugmentedJQuery; + (object: {}): IAugmentedJQuery; + (elementArray: Element[]): IAugmentedJQuery; + (object: JQuery): IAugmentedJQuery; + (func: Function): IAugmentedJQuery; + (array: any[]): IAugmentedJQuery; + (): IAugmentedJQuery; + } + + interface IAugmentedJQuery extends JQuery { + // TODO: events, how to define? + //$destroy + + controller(name: string): any; + injector(): any; + scope(): IScope; + + inheritedData(key: string, value: any): JQuery; + inheritedData(obj: { [key: string]: any; }): JQuery; + inheritedData(key?: string): any; + + + } + /////////////////////////////////////////////////////////////////////////// // AUTO module (angular.js)