docs: function () {
              if (this.$subBinding) {
                  this.$subBinding.invalidateValueCache();
                  return this.$subBinding.getValue();
              } else {
  
                  if (this.$cachedValue !== undefined && !this.$jsonObject) {
                      return this.$cachedValue;
                  }
  
                  this.$originalValue = undefined;
                  if (this.$.fnc && !this.$jsonObject) {
                      this.$originalValue = this.$.fnc.apply(this.$.scope, this._getFncParameters());
                  } else if (this.$.path.length === 1) {
                      this.$originalValue = this.$.scope.get(this.$.key.name);
                  } else if (this.$jsonObject && !_.isString(this.$jsonObject)) {
                      this.$originalValue = this.$.scope.get(this.$jsonObject, this.$.path.slice(1));
                  } else {
                      this.$originalValue = this.$.scope.get(this.$.path);
                  }
                  this.$cachedValue = this.transform.call(this.transformScope, this.$originalValue);
                  return this.$cachedValue;
              }
  
          }