Index: third_party/polymer/v1_0/components/iron-form-element-behavior/iron-form-element-behavior.html |
diff --git a/third_party/polymer/v1_0/components/iron-form-element-behavior/iron-form-element-behavior.html b/third_party/polymer/v1_0/components/iron-form-element-behavior/iron-form-element-behavior.html |
index d7678a78dfde961b4aae4d08aa16cc671cae75e8..6948273b24ace47b72e15deb89504c880fd6c710 100644 |
--- a/third_party/polymer/v1_0/components/iron-form-element-behavior/iron-form-element-behavior.html |
+++ b/third_party/polymer/v1_0/components/iron-form-element-behavior/iron-form-element-behavior.html |
@@ -15,15 +15,26 @@ Enables a custom element to be included in an `iron-form`. |
--> |
<script> |
- /** |
- |
+ /** |
+ |
@demo demo/index.html |
- @polymerBehavior |
- |
+ @polymerBehavior |
+ |
*/ |
Polymer.IronFormElementBehavior = { |
properties: { |
+ /** |
+ * Fired when the element is added to an `iron-form`. |
+ * |
+ * @event iron-form-element-register |
+ */ |
+ |
+ /** |
+ * Fired when the element is removed from an `iron-form`. |
+ * |
+ * @event iron-form-element-unregister |
+ */ |
/** |
* The name of this element. |
@@ -39,10 +50,25 @@ Enables a custom element to be included in an `iron-form`. |
notify: true, |
type: String |
}, |
+ |
+ /** |
+ * The form that the element is registered to. |
+ */ |
+ _parentForm: { |
+ type: Object |
+ } |
}, |
attached: function() { |
+ // Note: the iron-form that this element belongs to will set this |
+ // element's _parentForm property when handling this event. |
this.fire('iron-form-element-register'); |
+ }, |
+ |
+ detached: function() { |
+ if (this._parentForm) { |
+ this._parentForm.fire('iron-form-element-unregister', {target: this}); |
+ } |
} |
}; |