docs: function () {
                      if (this.$initialized) {
                          return;
                      }
  
                      var $ = this.$,
                          bindingCreator = this.$bindingCreator,
                          bindingAttributes = this.$bindingAttributes,
                          bindingDefinitions,
                          bindingAttribute,
                          value,
                          key;
  
                      // FIXME: resolve dependencies between bindings and loop in the correct order
                      // e.g. view="{{product.view}}" needs product
  
                      // Resolve bindings and events
                      for (key in bindingAttributes) {
                          if (bindingAttributes.hasOwnProperty(key)) {
                              bindingAttribute = bindingAttributes[key];
                              if (bindingAttribute) {
                                  value = bindingAttribute.value;
                                  bindingDefinitions = bindingAttribute.bindingDefinitions;
                                  $[key] = bindingCreator.evaluate(value, this, key, bindingDefinitions);
                              } else {
                                  value = $[key];
                                  bindingDefinitions = null;
                              }
                          }
                      }
  
                      if (this.$errorAttribute && this.$bindings[this.$errorAttribute]) {
                          var b = this.$bindings[this.$errorAttribute][0], errorBinding;
                          if (b.$.path.length > 1) {
                              var path = b.$.path.slice(), attrKey = path.pop().name;
                              path = path.concat(bindingCreator.parsePath("errors()." + attrKey));
  
                              errorBinding = bindingCreator.create({
                                  type: 'oneWay',
                                  path: path
                              }, this, "$error");
                              if (errorBinding) {
                                  $['$error'] = errorBinding.getValue();
                              }
                          }
                      }
  
                      this._initializeBindingsBeforeComplete();
  
                      this._initializationComplete();
                  }