function tokenDifference(str1, str2) {
          var values = [],
              tokens1 = str1.split(/\s+/),
              tokens2 = str2.split(/\s+/);

          outer:
          for(var i=0;i<tokens1.length;i++) {
            var token = tokens1[i];
            for(var j=0;j<tokens2.length;j++) {
              if(token == tokens2[j]) continue outer;
            }
            values.push(token);
          }
          return values;
        }
Set a normalized attribute on the element in a way such that all directives
can share the attribute. This function properly handles boolean attributes.
@param {string} key Normalized key. (ie ngAttribute)
@param {string|boolean} value The value to set. If `null` attribute will be deleted.
@param {boolean=} writeAttr If false, does not write the value to DOM element attribute.
    Defaults to true.
@param {string=} attrName Optional none normalized name. Defaults to key.