2013-07-30 4 views
-2

누구나 IE8에서 AngularJS를 사용하기위한 상용구 템플릿을 알고 있습니까? 문서에서 Angular가 IE8로 작업하는 데 필요한 전체 섹션이 있으며 필요한 단계가 매우 구체적이지만 지금까지는 ng-include와 같은 명령으로 거의 성공하지 못했습니다.AngularJS - IE8 html 템플릿

단계가 매우 구체적이면 IE8에서 작동하도록 확인 된 어딘가에 상용구 코드가 있다고 가정합니다. 공유 할 수 있다면 좋을 것 같습니다. 최소한 작동하지 않는다면 적어도 알려진 기준에서 시작하여 문제를 쉽게 분리 할 수 ​​있다는 것을 알게됩니다.

+2

어떻게 작동하는지는 아닙니다. 오히려 무엇을 시도했는지 보여 주시고 작동하지 않는 부분을 알려 주시면 고칠 수 있도록 도와 드리겠습니다. –

답변

1

질문이 더 자세해야하지만, 나는 과거에 IE8 코드를 관리하기 위해 무엇을했는지 말할 수 있습니다.

보일러 플레이트 (boilerplate)와 생산성 저하 절차를 걱정하는 대신, 나는 yeoman이이 모든 것을 처리하도록했습니다. http://yeoman.io/

보좌관은 빠르게 응용 프로그램을 구축 할 수 있도록 도와드립니다 레일의 레이크 비슷한 의견을 고집하는 조수이다. 발전기 각도와 yeoman을 다운로드하면됩니다.

https://github.com/yeoman/generator-angular

당신이 보좌관은 IE8의 상용구를 낳는 방법을보고 테스트 응용 프로그램을 사용하여 복사, 제품에 유사시를 통합하지 않으려면

.

이 정보가 도움이되기를 바랍니다.

4

나는 몇 가지 javascript 'fixes'로 IE8에서 완벽하게 작동하는 AngularJS를 사용하여 2 개의 프로덕션 응용 프로그램을 만들었습니다.

먼저 개발자 콘솔이 열려 있지 않으면 console.log 문이 실패합니다.

// 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을 사용하여 다음 JS는 각 응용 프로그램을 생성합니다 초기 페이지에 스 니펫 나는 그것을 해결했습니다. 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> 및 모든 것이 올바르게 작동합니다.

+0

https://github.com/jshint/jshint와 같은 자바 스크립트 코드 검사기를 설치하고 모든 자바 스크립트 파일의 유효성을 검사하십시오. 나를위한 해결책은 불필요한 쉼표를 제거하고 세미콜론을 추가하는 것이 었습니다. – Daan