code: function ($scope, key, def) {
                          if (! _defined( $scope.$eval(key) )) {
                              $parse(key).assign($scope, this.get(key, def));
                              this.add(key, def);
                          }
  
                          var self = this;
                          this._watchers[key + $scope.$id] = $scope.$watch(key, function (newVal) {
                              self.put(key, newVal);
                          }, angular.isObject($scope[key]));
  
                          return this;
                      }
docs: Bind a storage key to a $scope property
  
  @public
  
  @param  {Object}  $scope  The angular $scope object
  @param  {String}  key     The key in storage to bind to
  @param  {Mixed}   def     The default value to initially bind
  
  @return {Locker}