Carlo Moretto
Carlo Moretto

Reputation: 365

Angular not working in IE8 document mode 7

Angular working well with IE7 document Mode 7. It's also working well with IE8 document Mode 8, but with IE8 document mode 7 not working. This is the error:

{
   description: "Member not found.
",
   message: "Member not found.
",
   name: "Error",
   number: -2147352573
}

And this is the line where the error is throw:

this.$$element.attr(attrName, value);
Member not found

I'm using Angular 1.2.9. How can i fix it?

Upvotes: 0

Views: 625

Answers (1)

Carlo Moretto
Carlo Moretto

Reputation: 365

i have found the solution. Just check if (msie && msie <= 8) and it's work also in IE7. I have also changed jqLiteRemoveClass and jqLiteAddClass

function jqLiteRemoveClass(element, cssClasses) {
   if (msie && msie <= 8) {
     if (cssClasses) {
       forEach(cssClasses.split(' '), function(cssClass) {
         element.className = trim(
             (" " + element.className + " ")
             .replace(/[\n\t]/g, " ")
             .replace(" " + trim(cssClass) + " ", " ")
         );
       });
     }
   } else {
     if (cssClasses && element.setAttribute) {
       forEach(cssClasses.split(' '), function(cssClass) {
        element.setAttribute('class', trim(
             (" " + (element.getAttribute('class') || '') + " ")
             .replace(/[\n\t]/g, " ")
             .replace(" " + trim(cssClass) + " ", " "))
         );
       });
     }
    }
}

function jqLiteAddClass(element, cssClasses) {
   if (msie && msie <= 8) {
    if (cssClasses) {
      forEach(cssClasses.split(' '), function(cssClass) {
        if (!jqLiteHasClass(element, cssClass)) {
          element.className = trim(element.className + ' ' + trim(cssClass));
        }
      });
    }
  } else {
    if (cssClasses && element.setAttribute) {
      var existingClasses = (' ' + (element.getAttribute('class') || '') + ' ')
                              .replace(/[\n\t]/g, " ");

      forEach(cssClasses.split(' '), function(cssClass) {
        cssClass = trim(cssClass);
        if (existingClasses.indexOf(' ' + cssClass + ' ') === -1) {
          existingClasses += cssClass + ' ';
        }
      });

      element.setAttribute('class', trim(existingClasses));
    }
  }
}

Upvotes: 2

Related Questions