From 7f1e2e48467f80cc083d24b44f088620e4e7bcb6 Mon Sep 17 00:00:00 2001 From: Igor Minar Date: Mon, 6 Jun 2011 08:50:35 -0700 Subject: new batch of docs --- ...v_guide.compiler.widgets.creating_widgets.ngdoc | 116 +++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 docs/content/guide/dev_guide.compiler.widgets.creating_widgets.ngdoc (limited to 'docs/content/guide/dev_guide.compiler.widgets.creating_widgets.ngdoc') diff --git a/docs/content/guide/dev_guide.compiler.widgets.creating_widgets.ngdoc b/docs/content/guide/dev_guide.compiler.widgets.creating_widgets.ngdoc new file mode 100644 index 00000000..15ac368c --- /dev/null +++ b/docs/content/guide/dev_guide.compiler.widgets.creating_widgets.ngdoc @@ -0,0 +1,116 @@ +@workInProgress +@ngdoc overview +@name Developer Guide: Angular HTML Compiler: Widgets: Creating Custom Widgets +@description + + +When you create your own widgets, you must set up your own namespace for them. (See +dev_guide.bootstrap Initializing Angular} for information about namespaces in angular.) + + +Let's say we would like to create a new element type in the namespace `my` that can watch an +expression and `alert()` the user with each new value: + + +
+// An element widget
+
+
+ + +You can implement `my:watch` like this: + + +
+angular.widget('my:watch', function(compileElement) {
+ var compiler = this;
+ var exp = compileElement.attr('exp');
+ return function(linkElement) {
+   var currentScope = this;
+   currentScope.$watch(exp, function(value){
+     alert(value);
+   });
+ };
+});
+
+ + + + +# Creating a Custom Attribute Widget + + +Let's implement the same widget as in the example in Defining an Element Widget, but this time as +an attribute that can be added to any existing DOM element: + + +
+// An attribute widget (my-watch) in a div tag
+
text
+
+You can implement `my:watch` attribute like this: +
+angular.widget('@my:watch', function(expression, compileElement) {
+var compiler = this;
+return function(linkElement) {
+var currentScope = this;
+currentScope.$watch(expression, function(value){
+  alert(value);
+});
+};
+});
+
+ + + + +# Live Example of a Custom Element Widget + + + + + + + + + + + + + + +# Additional Compiler Methods for Custom Widgets + + +The angular compiler exposes methods that you may need to use of when writing your own widgets and +directives. For example, the `descend()` method lets you control whether the compiler ignores or +processes child elements of the element it is compiling. For information on this and other +compiler methods, see the {@link api/angular.compile Compiler API doc}. + + + + +## Related Topics + + +* {@link dev_guide.compiler Angular HTML Compiler} +* {@link dev_guide.compiler.directives Angular Directives} +* {@link dev_guide.compiler.widgets Angular Widgets} +* {@link dev_guide.compiler.directives.creating_directives Creating Custom Directives} + + +## Related API + + +* {@link api/angular.compile Compiler API} -- cgit v1.2.3