Я создал 2 производственных приложения, используя AngularJS, которые отлично работают в IE8 с помощью нескольких исправлений javascript.
Во-первых, если консоль разработчика не открыта, инструкции console.log не удастся. Я установил его со следующими JS фрагмент кода на начальной странице, которая нерестится угловое приложение:
// Avoid `console` errors in browsers that lack a console.
(function() {
var method;
var noop = function() {};
var methods = [
'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
'timeStamp', 'trace', 'warn'
];
var length = methods.length;
var console = (window.console = window.console || {});
while (length--) {
method = methods[length];
// Only stub undefined methods.
if (!console[method]) {
console[method] = noop;
}
}
}());
Во-вторых, я использую toISOString для преобразования метки времени даты. В IE, эта функция не реализована таким образом, я использую этот фрагмент кода:
/*IE8 toISOString hack */
if (!Date.prototype.toISOString) {
Date.prototype.toISOString = function() {
function pad(n) { return n < 10 ? '0' + n : n }
return this.getUTCFullYear() + '-'
+ pad(this.getUTCMonth() + 1) + '-'
+ pad(this.getUTCDate()) + 'T'
+ pad(this.getUTCHours()) + ':'
+ pad(this.getUTCMinutes()) + ':'
+ pad(this.getUTCSeconds()) + '.'
+ pad(this.getUTCMilliseconds()) + 'Z';
};
}
В-третьих, метод Foreach не поддерживается в IE, поэтому я использую это:
/*IE8 hack to support forEach */
if (!Array.prototype.forEach) {
Array.prototype.forEach = function(fn, scope) {
for(var i = 0, len = this.length; i < len; ++i) {
fn.call(scope, this[i], i, this);
}
}
}
Все эти кода фрагменты были выгравированы из ответов StackOverflow и работа для меня, но YMMV.
Я прочитал угловую документацию IE8, и я не сталкивался с ситуациями, описанными в документации. Для директив я использую формат: <div directive-name>
и все работает нормально.
Это не так, как это работает. Скорее, покажите, что вы пробовали, расскажите нам, что не получилось, чтобы мы могли помочь вам его исправить. –