From c27a56f4da9bf89e471ac6597c135e2f19814f17 Mon Sep 17 00:00:00 2001 From: Misko Hevery Date: Wed, 22 Feb 2012 12:59:23 -0800 Subject: docs(scope): show which directives create scopes --- docs/spec/ngdocSpec.js | 20 ++++++++++++++++++++ docs/src/ngdoc.js | 17 ++++++++++++++++- src/directives.js | 1 + src/widget/form.js | 3 ++- src/widgets.js | 7 ++++++- 5 files changed, 45 insertions(+), 3 deletions(-) diff --git a/docs/spec/ngdocSpec.js b/docs/spec/ngdocSpec.js index 8082e4b1..4b809479 100644 --- a/docs/spec/ngdocSpec.js +++ b/docs/spec/ngdocSpec.js @@ -349,6 +349,26 @@ describe('ngdoc', function() { }); }); + describe('@scope', function() { + it('should state the new scope will be created', function() { + var doc = new Doc('@name a\n@scope'); + doc.ngdoc = 'directive'; + doc.parse(); + expect(doc.scope).toEqual(''); + expect(doc.html()).toContain('This directive creates new scope.'); + }); + }); + + describe('@priority', function() { + it('should state the priority', function() { + var doc = new Doc('@name a\n@priority 123'); + doc.ngdoc = 'directive'; + doc.parse(); + expect(doc.priority).toEqual('123'); + expect(doc.html()).toContain('This directive executes at priority level 123.'); + }); + }); + describe('@property', function() { it('should parse @property tags into array', function() { var doc = new Doc("@name a\n@property {type} name1 desc\n@property {type} name2 desc"); diff --git a/docs/src/ngdoc.js b/docs/src/ngdoc.js index 87f9ab62..fc606d54 100644 --- a/docs/src/ngdoc.js +++ b/docs/src/ngdoc.js @@ -374,6 +374,7 @@ Doc.prototype = { dom.text('>\n ...\n'); dom.text(''); }); + self.html_usage_directiveInfo(dom); self.html_usage_parameters(dom); }); }, @@ -461,11 +462,25 @@ Doc.prototype = { }); }); + self.html_usage_directiveInfo(dom); self.html_usage_parameters(dom); - self.html_usage_returns(dom); }); }, + html_usage_directiveInfo: function(dom) { + var self = this; + var list = []; + + + if (self.scope !== undefined) { + list.push('This directive creates new scope.'); + } + if (self.priority !== undefined) { + list.push('This directive executes at priority level ' + self.priority + '.'); + } + dom.ul(list); + }, + html_usage_overview: function(dom){ dom.html(this.description); }, diff --git a/src/directives.js b/src/directives.js index 1f70d912..67c9f1f6 100644 --- a/src/directives.js +++ b/src/directives.js @@ -55,6 +55,7 @@ var ngInitDirective = valueFn({ * service. * * @element ANY + * @scope * @param {expression} expression Name of a globally accessible constructor function or an * {@link guide/dev_guide.expressions expression} that on the current scope evaluates to a * constructor function. diff --git a/src/widget/form.js b/src/widget/form.js index 552cc4e5..deaf38d5 100644 --- a/src/widget/form.js +++ b/src/widget/form.js @@ -1,9 +1,10 @@ 'use strict'; /** - * @ngdoc widget + * @ngdoc directive * @name angular.module.ng.$compileProvider.directive.form * + * @scope * @description * Angular widget that creates a form scope using the * {@link angular.module.ng.$formFactory $formFactory} API. The resulting form scope instance is diff --git a/src/widgets.js b/src/widgets.js index cd282746..84982dc6 100644 --- a/src/widgets.js +++ b/src/widgets.js @@ -10,6 +10,8 @@ * Keep in mind that Same Origin Policy applies to included resources * (e.g. ng:include won't work for file:// access). * + * @scope + * * @param {string} src angular expression evaluating to URL. If the source is a string constant, * make sure you wrap it in quotes, e.g. `src="'myPartialTemplate.html'"`. * @param {Scope=} [scope=new_child_scope] optional expression which evaluates to an @@ -130,6 +132,7 @@ var ngIncludeDirective = ['$http', '$templateCache', '$anchorScroll', '$compile' * ... * ... * + * @scope * @param {*} on expression to match against ng:switch-when. * @paramDescription * On child elments add: @@ -254,7 +257,7 @@ var htmlAnchorDirective = valueFn({ /** - * @ngdoc widget + * @ngdoc directive * @name angular.module.ng.$compileProvider.directive.ng:repeat * * @description @@ -273,6 +276,8 @@ var htmlAnchorDirective = valueFn({ * Note: Although `ng:repeat` looks like a directive, it is actually an attribute widget. * * @element ANY + * @scope + * @priority 1000 * @param {string} repeat_expression The expression indicating how to enumerate a collection. Two * formats are currently supported: * -- cgit v1.2.3