From 33e1bdc543bcb7875dcc004d487333393670ed2d Mon Sep 17 00:00:00 2001 From: Peter Bacon Darwin Date: Sun, 16 Feb 2014 22:02:31 +0000 Subject: chore(errors): rename folders to match namespaces --- docs/content/error/$compile/ctreq.ngdoc | 49 +++++++++++++++++++++++++++ docs/content/error/$compile/iscp.ngdoc | 25 ++++++++++++++ docs/content/error/$compile/multidir.ngdoc | 17 ++++++++++ docs/content/error/$compile/nodomevents.ngdoc | 20 +++++++++++ docs/content/error/$compile/nonassign.ngdoc | 41 ++++++++++++++++++++++ docs/content/error/$compile/selmulti.ngdoc | 20 +++++++++++ docs/content/error/$compile/tpload.ngdoc | 11 ++++++ docs/content/error/$compile/tplrt.ngdoc | 39 +++++++++++++++++++++ docs/content/error/$compile/uterdir.ngdoc | 34 +++++++++++++++++++ 9 files changed, 256 insertions(+) create mode 100644 docs/content/error/$compile/ctreq.ngdoc create mode 100644 docs/content/error/$compile/iscp.ngdoc create mode 100644 docs/content/error/$compile/multidir.ngdoc create mode 100644 docs/content/error/$compile/nodomevents.ngdoc create mode 100644 docs/content/error/$compile/nonassign.ngdoc create mode 100644 docs/content/error/$compile/selmulti.ngdoc create mode 100644 docs/content/error/$compile/tpload.ngdoc create mode 100644 docs/content/error/$compile/tplrt.ngdoc create mode 100644 docs/content/error/$compile/uterdir.ngdoc (limited to 'docs/content/error/$compile') diff --git a/docs/content/error/$compile/ctreq.ngdoc b/docs/content/error/$compile/ctreq.ngdoc new file mode 100644 index 00000000..47c876a3 --- /dev/null +++ b/docs/content/error/$compile/ctreq.ngdoc @@ -0,0 +1,49 @@ +@ngdoc error +@name $compile:ctreq +@fullName Missing Required Controller +@description + +This error occurs when {@link ng.$compile HTML compiler} tries to process a directive that specifies the {@link ng.$compile#description_comprehensive-directive-api_directive-definition-object `require` option} in a {@link ng.$compile#description_comprehensive-directive-api directive definition}, +but the required directive controller is not present on the current DOM element (or its ancestor element, if `^` was specified). + +To resolve this error ensure that there is no typo in the required controller name and that the required directive controller is present on the current element. + +If the required controller is expected to be on a ancestor element, make ensure that you prefix the controller name in the `require` definition with `^`. + +If the required controller is optionally requested, use `?` or `^?` to specify that. + + +Example of a directive that requires {@link ng.directive:ngModel ngModel} controller: +``` +myApp.directive('myDirective', function() { + return { + require: 'ngModel', + ... + } +} +``` + +This directive can then be used as: +``` + +``` + + +Example of a directive that optionally requires a {@link ng.directive:form form} controller from an ancestor: +``` +myApp.directive('myDirective', function() { + return { + require: '^?form', + ... + } +} +``` + +This directive can then be used as: +``` +
+``` diff --git a/docs/content/error/$compile/iscp.ngdoc b/docs/content/error/$compile/iscp.ngdoc new file mode 100644 index 00000000..1450dec9 --- /dev/null +++ b/docs/content/error/$compile/iscp.ngdoc @@ -0,0 +1,25 @@ +@ngdoc error +@name $compile:iscp +@fullName Invalid Isolate Scope Definition +@description + +When declaring isolate scope the scope definition object must be in specific format which starts with mode character (`@&=`) with an optional local name. + +``` +myModule.directive('directiveName', function factory() { + return { + ... + scope: { + 'attrName': '@', // OK + 'attrName2': '=localName', // OK + 'attrName3': 'name', // ERROR: missing mode @&= + 'attrName4': ' = name', // ERROR: extra spaces + 'attrName5': 'name=', // ERROR: must be prefixed with @&= + } + ... + } +}); +``` + +Please refer to the {@link ng.$compile#description_comprehensive-directive-api_directive-definition-object +`scope` option} of the directive definition documentation to learn more about the API. diff --git a/docs/content/error/$compile/multidir.ngdoc b/docs/content/error/$compile/multidir.ngdoc new file mode 100644 index 00000000..439d82c7 --- /dev/null +++ b/docs/content/error/$compile/multidir.ngdoc @@ -0,0 +1,17 @@ +@ngdoc error +@name $compile:multidir +@fullName Multiple Directive Resource Contention +@description + +This error occurs when multiple directives are applied to the same DOM element, and +processing them would result in a collision or an unsupported configuration. + + +To resolve this issue remove one of the directives which is causing the collision. + +Example scenarios of multiple incompatible directives applied to the same element include: + +* Multiple directives requesting `isolated scope`. +* Multiple directives publishing a controller under the same name. +* Multiple directives declared with the `transclusion` option. +* Multiple directives attempting to define a `template` or `templateURL`. diff --git a/docs/content/error/$compile/nodomevents.ngdoc b/docs/content/error/$compile/nodomevents.ngdoc new file mode 100644 index 00000000..ed1888c7 --- /dev/null +++ b/docs/content/error/$compile/nodomevents.ngdoc @@ -0,0 +1,20 @@ +@ngdoc error +@name $compile:nodomevents +@fullName Interpolated Event Attributes +@description + +This error occurs when one tries to create a binding for event handler attributes like `onclick`, `onload`, `onsubmit`, etc. + +There is no practical value in binding to these attributes and doing so only exposes your application to security vulnerabilities like XSS. +For these reasons binding to event handler attributes (all attributes that start with `on` and `formaction` attribute) is not supported. + + +An example code that would allow XSS vulnerability by evaluating user input in the window context could look like this: +``` + +blah blah blah
` instead of simply `blah blah blah`. +Otherwise, the replacement operation would result in a single element (the directive) being replaced +with multiple elements or nodes, which is unsupported and not commonly needed in practice. + + +For example a directive with definition: + +``` +myModule.directive('myDirective', function factory() { + return { + ... + replace: true, + templateUrl: 'someUrl' + ... + } +}); +``` + +And a template provided at URL `someUrl`. The template must be an html fragment that has only a +single root element, like the `div` element in this template: + +``` +