       if attrs.macTagAutocompleteUrl?
         attrsObject["mac-autocomplete-url"] = "url"
       else if attrs.macTagAutocompleteSource?
+        useSource                              = true
         attrsObject["mac-autocomplete-source"] = "autocompleteSource"
 
       textInput.attr attrsObject
 
       ($scope, element, attrs) ->
         # Variable for input element
-        $scope.textInput = ""
+        $scope.textInput          = ""
+        $scope.autocompleteSource = []
 
         if attrs.macTagAutocompleteModel?
-          $scope.$watch "textInput", (value) -> $scope.model = value
+          $scope.$watch "textInput", (value) -> $scope.model     = value
           $scope.$watch "model",     (value) -> $scope.textInput = value
 
         # Clicking on the element will focus on input

                    expression $scope.$parent, {$event, item}
        , 0

        $scope.$watch "selected.length", (length) ->
          sourceValues   = (item[valueKey] for item in ($scope.source or []))
          selectedValues = (item[valueKey] for item in ($scope.selected or []))
          difference     = (item for item in sourceValues when item not in selectedValues)

          $scope.autocompleteSource  = (item for item in ($scope.source or []) when item[valueKey] in difference)

        $scope.onKeyDown = ($event) ->
          stroke = $event.which or $event.keyCode

      labelKey   ?= "name"
      queryKey    = attrs.macTagAutocompleteQuery  or "q"
      delay       = +attrs.macTagAutocompleteDelay or 800
      useSource   = false

      textInput =
        angular.element(element[0].getElementsByClassName "mac-autocomplete")
